Java实例-字符串

1、字符串比较:通过字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值。

```

public class String_Compare {

public String_Compare(){

String str1 ="Hello";

String str2 ="hello";

Object obj = str2;

System.out.println(str1.compareTo(str2));

System.out.println(str1.compareToIgnoreCase(str2));    //忽略大小写

System.out.println(str1.compareTo(obj.toString()));

}

}

```

输出结果:

Java实例-字符串_第1张图片

2、查找字符串最后一次出现的位置:通过字符串函数 strOrig.lastIndexOf(Stringname) 来查找子字符串 Stringname 在 strOrig 出现的位置。

```

public class String_SearchLast {

public String_SearchLast(){

String str ="Hello hello";

String search ="ll";                       //输入需要查找的字符串

int lastindex = str.lastIndexOf(search);     //该类的主要方法

if (lastindex==-1)

System.out.println("没有找到字符串"+search);

else

System.out.println("字符串"+search+"最后出现的位置是"+lastindex);

}

}

```

输出结果:

3、删除字符串中的一个字符:通过字符串函数 substring() 函数来删除字符串中的一个字符,将功能封装在 removeChar 函数中。

```

public class String_Deletechar {

public String_Deletechar(){

String str ="hello";

System.out.println("原字符串:"+str);

System.out.println("删除字符后:"+removeChar(str,3));

}

public static String removeChar(String str,int pos){    //编写删除字符方法

        return str.substring(0,pos) +str.substring(pos+1);

}

}

```

输出结果:

Java实例-字符串_第2张图片

4、Java 实例 - 字符串替换:使用 java String 类的 replace 方法来替换字符串中的字符。

```

public class String_Replace {

public String_Replace(){

String str ="hello,hello";

System.out.println("原字符串为:"+str);

System.out.println("将所有e替换成i:"+str.replace('e','i'));//替换所有匹配的字符

        System.out.println("将第一个he替换成Ki:"+str.replaceFirst("he","ki"));//替换第一次匹配的字符,基于正则表达式

        System.out.println("将所有he替换成Hi:"+str.replaceAll("he","Ki"));//替换所有匹配的字符,基于正则表达式

    }

}

```

输出结果:

Java实例-字符串_第3张图片

5、Java 实例 - 字符串反转:使用 Java 的反转函数 reverse() 将字符串反转。

```

public class String_Reverse {

public String_Reverse(){

String str ="hello";

String reverse =new StringBuffer(str).reverse().toString();

System.out.println("原字符串为:"+str);

System.out.println("反转后的字符串为:"+reverse);

}

}

```

输出结果:

Java实例-字符串_第4张图片

6、Java 实例 - 字符串查找:使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如果存在返回字符串出现的位置(第一位为0),不存在返回 -1。

```

public class String_Search {

public String_Search(){

String str ="hello,hello";

String seach ="age";//需要查找的字符串

int intIndex = str.indexOf(seach);

System.out.println("原字符串为:"+str);

if (intIndex==-1)

System.out.println("没有找到字符串"+seach);

else

System.out.println("字符串"+seach+"所在的位置是:"+intIndex);

}

}

```

输出结果:

Java实例-字符串_第5张图片
不存在字符串


Java实例-字符串_第6张图片
存在字符串

7、Java 实例 - 字符串分割:使用 split(string) 方法通过指定分隔符将字符串分割为数组。

```

public class String_Split {

public String_Split(){

String str ="hello!hi";

String []temp;//老师存储字符串分片

String delimeter ="!";//定义分割线

temp = str.split(delimeter);

System.out.println("原字符串为:"+str+"\n从'"+delimeter+"'分割后为:");

for (String s:temp)//for each遍历字符串

            System.out.println(s);

}

```

输出结果:

Java实例-字符串_第7张图片


8、Java 实例 - 字符串分割(StringTokenizer):使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。

```

public class String_Tokenizer {

public String_Tokenizer(){

String str ="1a, 2b, 3c";

StringTokenizer st1 =new StringTokenizer(str);              //默认以空格为分割线

StringTokenizer st2 =new StringTokenizer(str,",");         //设定为以逗号为分割线

System.out.println("按空格分割");

while(st1.hasMoreElements())

System.out.println(st1.nextElement());

System.out.println("按逗号分割");

while (st2.hasMoreElements())

System.out.println(st2.nextElement());

}

}

```

输出结果:

Java实例-字符串_第8张图片

9、Java 实例 - 字符串小写转大写:使用了String toUpperCase() 方法将字符串从小写转为大写。

```


```

输出结果:

10、Java 实例 - 测试两个字符串区域是否相等:使用regionMatches() 方法测试两个字符串区域是否相等

```

public class String_RegionMatch {

public String_RegionMatch(){

String first_str ="Welcome to Microsoft";

String second_str ="I work with microsoft";

boolean match1 = first_str.regionMatches(11, second_str,12,9);

//11是字符串first_str起始匹配位置,12是second_str起始匹配位置,9是匹配长度

        boolean match2 = first_str.regionMatches(true,11, second_str,12,9);

//第一个参数 true 表示忽略大小写区别,其余同上

        System.out.println("字符串1:"+first_str+"\n字符串2:"+second_str);

System.out.println("区分大小写匹配结果:" + match1);

System.out.println("不区分大小写匹配结果:" + match2);

}

}

```

输出结果:

Java实例-字符串_第9张图片

11、Java 实例 - 字符串性能比较测试:通过两种方式创建字符串,并测试其性能。

```

public class String_ComparePerformance {

public String_ComparePerformance(){

long startTime = System.currentTimeMillis();

for(int i=0;i<50000;i++){

String s1 ="hello";

String s2 ="hello";

}

long endTime = System.currentTimeMillis();

System.out.println("通过 String 关键词创建字符串"

                +" : "+ (endTime - startTime)

+" 毫秒" );

long startTime1 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

String s3 =new String("hello");

String s4 =new String("hello");

}

long endTime1 = System.currentTimeMillis();

System.out.println("通过 String 对象创建字符串"

                +" : " + (endTime1 - startTime1)

+" 毫秒");

}

}

```

输出结果:

Java实例-字符串_第10张图片

12、Java 实例 - 字符串优化:通过 String.intern() 方法来优化字符串。

```

public class String_Optimization {

public String_Optimization(){

String variables[] =new String[50000];

for(int i=0;i <50000;i++){

variables[i] ="s"+i;

}

long startTime0 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

variables[i] ="hello";

}

long endTime0 = System.currentTimeMillis();

System.out.println("直接使用字符串: "+ (endTime0 - startTime0)  +" ms" );

long startTime1 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

variables[i] =new String("hello");

}

long endTime1 = System.currentTimeMillis();

System.out.println("使用 new 关键字:" + (endTime1 - startTime1) +" ms");

long startTime2 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

variables[i] =new String("hello");

variables[i] = variables[i].intern();

}

long endTime2 = System.currentTimeMillis();

System.out.println("使用字符串对象的 intern() 方法: "

                + (endTime2 - startTime2)

+" ms");

}

}

```

输出结果:

Java实例-字符串_第11张图片

13、Java 实例 - 字符串格式化:通过 format() 方法来格式化字符串,或者指定地区来格式化

```

public class String_Format {

public String_Format(){

double e = Math.E;

System.out.format("%f%n", e);

System.out.format(Locale.CHINA  ,"%-10.4f%n%n", e);//指定本地为中国(CHINA)

    }

}

```

输出结果:

Java实例-字符串_第12张图片

14、Java 实例 - 连接字符串:通过 "+" 操作符和StringBuffer.append() 方法来连接字符串,并比较其性能。

```

public class String_Concatenate {

public String_Concatenate(){

long startTime = System.currentTimeMillis();

for(int i=0;i<5000;i++){

String result ="This is"

                    +"testing the"

                    +"difference"+"between"

                    +"String"+"and"+"StringBuffer";

}

long endTime = System.currentTimeMillis();

System.out.println("字符串连接"

                +" - 使用 + 操作符 : "

                + (endTime - startTime)+" ms");

long startTime1 = System.currentTimeMillis();

for(int i=0;i<5000;i++){

StringBuffer result =new StringBuffer();

result.append("This is");

result.append("testing the");

result.append("difference");

result.append("between");

result.append("String");

result.append("and");

result.append("StringBuffer");

}

long endTime1 = System.currentTimeMillis();

System.out.println("字符串连接"

                +" - 使用 StringBuffer : "

                + (endTime1 - startTime1)+" ms");

}

}

```

输出结果:

Java实例-字符串_第13张图片

你可能感兴趣的:(Java实例-字符串)