1. 程式人生 > >Java——字串的比較

Java——字串的比較

*前言
  在寫部落格之前小菜想說一下今天收穫的一句話“看別人的程式碼可以擴寬自己的眼界,看別人的程式碼才知道自己的low”。
  如果今天還沒仔細看別人寫的程式碼,不思考別人寫的程式碼,或許我還是隻知道java中字串的比較用equals()和compareTo(),而不知道還有equalsIgnoreCase()、regionMatches()、contains(),所以多看看別人的程式碼也是一種學習。下面小菜就來簡單講解一下java中字串的比較。
*equals()
1、作用:比較值
2、返回值:Boolean
3、示例
String str1="hello";
String str2="hello";
String str3="Hello";

Boolean flag1=str1.equals(str2);//-----------------------------true
Boolean flag1=str1.equals(str3);//-----------------------------false
* equalsIgnoreCase()
1、作用:比較值,不區分大小
2、返回值:Boolean
3、示例
String str1="hello";
String str2="hello";
String str3="Hello";

Boolean flag1=str1.equals(str2);//-----------------------------true
Boolean flag1=str1.equals(str3);//-----------------------------true
* regionMatches()
  判斷string的子串是否相同。用於比較一個字串中特定區域與另一特定區域,它有一個過載的形式允許在比較中忽略大小寫。

  這個方法小菜不熟,就分享一下連結大家看看。
*compareTo()

1、作用:按字典順序比較兩個字串。該比較基於字串中各個字元的Unicode值

2、返回值:int

3、示例

String str1="abcd";
String str2="abcd";
String str3="abcde";
String str4="efg";

System.out.println( str1.compareTo(str2) ); // 0 (相等) 
System.out.println( str1.compareTo(str3) ); // -1 (abcd相等,但str3比str1多了一個d,所以str1比str3的長度小1,此時的返回值是長度的差值) 
System.out.println( str1.compareTo(str4) ); // -4 (str1與str4從第一個字元就不相等,所以直接比較兩個字串的第一個字元的ASCII碼,然後計算差值即可,"a"的ASCII碼是97,"e"的ASCII碼是101) 
*contains()
1、作用:包含
2、返回值:Boolean
3、示例
String str1="a";
String str2="abcd";
String str3="efg";

Boolean flag1=str2.contains(str1);//-----------------------------------true
Boolean flag2=str3.contains(str1);//-----------------------------------false