1. 程式人生 > >java:字符串(下)

java:字符串(下)

for 字符串分割 .com start abcd h+ equal 兩個 小寫

判斷字符串是否相等

對字符串對象進行比較不能簡單地比較運算符“====”,因為比較運算符比較的是兩個字符串的地址是否相同。即使兩個字符串的內容相同。

即使兩個字符串的內容相同,兩個對象的內存地址也是不同的,使用比較運算符仍然會返回false。

equals()方法和equalsIgnoreCase方法

如果兩個字符串具有相同的字符和長度,則使用equals方法()進行比較時,返回ture

使用equals()方法對字符串進行比較時是區分大小寫的,而使用equalsIgnoreCase()方法是忽略了大小寫的情況下比較兩個字符串是否相等,返回結果仍未boolean類型。

我們用一組代碼來進行比較

public class Opinion { public static void main(String[] args) {
String s1=new String("abc");
String s2=new String("ABC");
boolean b=s1.equals(s2);//定義b為布爾類型s1和s2是否相同
boolean b2=s1.equalsIgnoreCase(s2);//定義b2為布爾類型s1和s2是否相等
System.out.println(s1+"\t"+"equals"+"\t"+s2+"\t"+b);//打印
System.out.println(s1+ "\t"+"equalslgnoreCase"+"\t" +s2+":"+b2);
} } 執行結果: abc equals ABC false
abc equalslgnoreCase ABC:true 按字典順序比較兩個字符串 CompareTo()方法為按字典順序比較兩個字符串,該比較基於字符串中各個字符的unicode值,按字典順序將此String對象表示的字符序列與參數字符串所表示的字符串序列進行比較如果按字典順序Sting對象表示的字符串序列進行比較。如果按字典順序此String對象位於參數字符串之前,則比較結果為一個負整數;如果按字典順序此String 對象位於參數數字字符串之後,則比價結果為一個正整數了;如果這兩個字符串相等則結果為0 使用equals()方法比較,進行輸出 public class Wordbook { public static void main(String[] args) {
String str=new String("b");
String str2=new String("a");
String str3=new String("c");
System.out.println(str+"compareTO"+str2+"."+str.compareTo(str2));
System.out.println(str+"compareTo"+str3+"."+str.compareTo(str3));
} } 執行結果為: bcompareTOa.1
bcompareToc.-1 字母大小寫轉換:字符串的tolowerCase()方法課將字符串中的所有字符從大寫字母改為小寫字母,而toUpperCase()方法可將字符串中的小寫字母改為大寫字母。 toLowerCase()是轉換成小寫,toUpperCase()是轉換成大寫 public class UpAndLower { public static void main(String[] args) {
String str=new String("abcDEF");//str定義新的字符串類型
String newstr=str.toLowerCase();//將str中的abcdef轉換為小寫
String newstr2=str.toUpperCase();//將str中的abcde轉換為大寫
System.out.println(newstr);//打印newstr
System.out.println(newstr2);//打印newstr2
} } 執行結果為: abcdef
ABCDEF 字符串分割:使用split()方法可以是字符串按指定的分割字符或字符串對內容進行分割,並將分割後的結果存放在字符串數組中。 public class Division { public static void main(String[] args) {
String str="192.168.1.1";
String[] firstArray=str.split("\\.");
String[] secondArray=str.split("\\.",2);
System.out.println("str的原值為:["+str+"]");
System.out.println("全部分割結果為:");
for(String a:firstArray){
System.out.print("["+a+"]");
}
System.out.println();
System.out.println("分割兩次結果為");
for(String a:secondArray){
System.out.print("["+a+"]");
}
System.out.println();
}
} 執行結果為: str的原值為:[192.168.1.1]
全部分割結果為:
[192][168][1][1]
分割兩次結果為
[192][168.1.1] 格式化字符串 String類靜態forma格式化的字符串方法用於創建格式化的字符串 format()方法有兩種重載形式 public class All_所有時間 {
public static void main(String[] args) {
Date date=new Date();
String year=String.format("%tY", date);
String month=String.format("%tm",date);
String day=String.format("%td", date);
String a=String.format("%ta", date);
String hour=String.format("%tH", date);
String minute=String.format("%tM", date);
String second=String.format("%tS", date);
System.out.println(year+"/"+month+"/"+day+" "+a+" "+hour+":"+minute+":"+second);
}
} 執行結果為:2018/07/05 星期四 15:00:17 使用正則表達式: 正則表達式用於判斷語句居多,用來檢查某一字符串時候滿足某一格式 用判斷E-mai地址合法的是那幾個 public class Judge { public static void main(String[] args) {
//定義要匹配的E-mail地址的正則表達式
String regex="\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";//符合這個正則表達式的為E-mail地址
String str1="aaa@";
String str2="[email protected]";
String str3="[email protected]";
if(str1.matches(regex)){
System.out.println(str1+"是一個合法的E-mail地址格式");
}
if(str2.matches(regex)){
System.out.println(str2+"是一個合法的E-mail地址格式");
}
if(str3.matches(regex)){
System.out.println(str3+"是一個合法的E-mail地址格式");
}
}
} 執行結果為:[email protected]是一個合法的E-mail地址格式
[email protected]是一個合法的E-mail地址格式 字符串生成器: 創建成功的字符串,長度為固定的,內容不能被改變和編譯。 下面就來驗證一下字符串的長度和其字符串的工作效率 public class Jreque { public static void main(String[] args) {
String str="";
//定義對字符串執行操作的起始時間
long startTime=System.currentTimeMillis();
for(int i=0;i<10000;i++){
str=str+i;
}
long endTime=System.currentTimeMillis();
long time=endTime-startTime;
System.out.println("String消耗時間"+time);
StringBuilder builder=new StringBuilder("");
startTime=System.currentTimeMillis();
for(int j=0; j<10000;j++){
builder.append(j);
}
endTime=System.currentTimeMillis();
time=endTime-startTime;
System.out.println("StringBuilder 消耗時間:"+time);
} } 執行結果為: String消耗時間273
StringBuilder 消耗時間:1

java:字符串(下)