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()));
}
}
```
输出结果:
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);
}
}
```
输出结果:
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"));//替换所有匹配的字符,基于正则表达式
}
}
```
输出结果:
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);
}
}
```
输出结果:
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);
}
}
```
输出结果:
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);
}
```
输出结果:
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());
}
}
```
输出结果:
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);
}
}
```
输出结果:
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)
+" 毫秒");
}
}
```
输出结果:
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");
}
}
```
输出结果:
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)
}
}
```
输出结果:
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");
}
}
```
输出结果: