1、字符串比較:通過字符串函數(shù) 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()));
}
}
```
輸出結(jié)果:
2涕烧、查找字符串最后一次出現(xiàn)的位置:通過字符串函數(shù) strOrig.lastIndexOf(Stringname) 來查找子字符串 Stringname 在 strOrig 出現(xiàn)的位置。
```
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+"最后出現(xiàn)的位置是"+lastindex);
}
}
```
輸出結(jié)果:
3菜谣、刪除字符串中的一個字符:通過字符串函數(shù) substring() 函數(shù)來刪除字符串中的一個字符,將功能封裝在 removeChar 函數(shù)中晚缩。
```
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);
}
}
```
輸出結(jié)果:
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"));//替換第一次匹配的字符荞彼,基于正則表達(dá)式
? ? ? ? System.out.println("將所有he替換成Hi:"+str.replaceAll("he","Ki"));//替換所有匹配的字符冈敛,基于正則表達(dá)式
? ? }
}
```
輸出結(jié)果:
5、Java 實例 - 字符串反轉(zhuǎn):使用 Java 的反轉(zhuǎn)函數(shù) reverse() 將字符串反轉(zhuǎn)鸣皂。
```
public class String_Reverse {
public String_Reverse(){
String str ="hello";
String reverse =new StringBuffer(str).reverse().toString();
System.out.println("原字符串為:"+str);
System.out.println("反轉(zhuǎn)后的字符串為:"+reverse);
}
}
```
輸出結(jié)果:
6抓谴、Java 實例 - 字符串查找:使用了 String 類的 indexOf() 方法在字符串中查找子字符串出現(xiàn)的位置,如果存在返回字符串出現(xiàn)的位置(第一位為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);
}
}
```
輸出結(jié)果:
7、Java 實例 - 字符串分割:使用 split(string) 方法通過指定分隔符將字符串分割為數(shù)組荆陆。
```
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);
}
```
輸出結(jié)果:
8滩届、Java 實例 - 字符串分割(StringTokenizer):使用 StringTokennizer 設(shè)置不同分隔符來分隔字符串,默認(rèn)的分隔符是:空格被啼、制表符(\t)帜消、換行符(\n)、回車符(\r)浓体。
```
public class String_Tokenizer {
public String_Tokenizer(){
String str ="1a, 2b, 3c";
StringTokenizer st1 =new StringTokenizer(str);? ? ? ? ? ? ? //默認(rèn)以空格為分割線
StringTokenizer st2 =new StringTokenizer(str,",");? ? ? ? ?//設(shè)定為以逗號為分割線
System.out.println("按空格分割");
while(st1.hasMoreElements())
System.out.println(st1.nextElement());
System.out.println("按逗號分割");
while (st2.hasMoreElements())
System.out.println(st2.nextElement());
}
}
```
輸出結(jié)果:
9泡挺、Java 實例 - 字符串小寫轉(zhuǎn)大寫:使用了String toUpperCase() 方法將字符串從小寫轉(zhuǎn)為大寫。
```
```
輸出結(jié)果:
10汹碱、Java 實例 - 測試兩個字符串區(qū)域是否相等:使用regionMatches() 方法測試兩個字符串區(qū)域是否相等
```
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);
//第一個參數(shù) true 表示忽略大小寫區(qū)別咳促,其余同上
? ? ? ? System.out.println("字符串1:"+first_str+"\n字符串2:"+second_str);
System.out.println("區(qū)分大小寫匹配結(jié)果:" + match1);
System.out.println("不區(qū)分大小寫匹配結(jié)果:" + match2);
}
}
```
輸出結(jié)果:
11稚新、Java 實例 - 字符串性能比較測試:通過兩種方式創(chuàng)建字符串,并測試其性能跪腹。
```
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 關(guān)鍵詞創(chuàng)建字符串"
? ? ? ? ? ? ? ? +" : "+ (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 對象創(chuàng)建字符串"
? ? ? ? ? ? ? ? +" : " + (endTime1 - startTime1)
+" 毫秒");
}
}
```
輸出結(jié)果:
12褂删、Java 實例 - 字符串優(yōu)化:通過 String.intern() 方法來優(yōu)化字符串。
```
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 關(guān)鍵字:" + (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");
}
}
```
輸出結(jié)果:
13冲茸、Java 實例 - 字符串格式化:通過 format() 方法來格式化字符串屯阀,或者指定地區(qū)來格式化
```
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)
? ? }
}
```
輸出結(jié)果:
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");
}
}
```
輸出結(jié)果: