日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

java 与 c#的 中 字符串比较“==”与“equals”的差异

發布時間:2023/12/1 C# 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 与 c#的 中 字符串比较“==”与“equals”的差异 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.net中,其字符串特有的駐留機制,保證了在同一進程中,相同字符序列的字符串,只有一個實例,這樣能避免相同內容的字符串重復實例化,以減少性能開銷。

先來回顧一下c#中的代碼:

public static void testString()
{
String s = "Abc";
String s1 = "abc";
String s2 = "abc";


Console.WriteLine("s1==s2 ? " + (s1 == s2)); //true
Console.WriteLine("s1.Equals(s2) ? " + s1.Equals(s2)); //true
Console.WriteLine("String.Compare(s1,s,true) ? " + String.Compare(s1, s, true)); //0
Console.WriteLine("------------------------");


char[] chr = { 'a', 'b', 'c' };
String s3 = new String(chr);
Console.WriteLine("s1==s3 ? " + (s1 == s3)); //true
Console.WriteLine("s1.equals(s3) ? " + s1.Equals(s3)); //true
Console.WriteLine("String.Compare(s3, s, true) ? " + String.Compare(s3, s, true)); //0
Console.WriteLine("------------------------");

String t = "bc";
String s4 = "a" + t;
Console.WriteLine("s1==s4 ? " + (s1 == s4)); //true
Console.WriteLine("s1.equals(s4) ? " + s1.Equals(s4)); //true
Console.WriteLine("String.Compare(s4, s, true) ? " + String.Compare(s4, s, true)); //0
Console.WriteLine("------------------------");

String s5 = "a" + "bc";
Console.WriteLine("s1==s5 ? " + (s1 == s5)); //true
Console.WriteLine("s1.equals(s5) ? " + s1.Equals(s5)); //true
Console.WriteLine("String.Compare(s5, s, true) ? " + String.Compare(s5, s, true)); //0


Console.Read();


}

1 public static void testString()2 {3 String s = "Abc";4 String s1 = "abc";5 String s2 = "abc";6 7 8 Console.WriteLine("s1==s2 ? " + (s1 == s2)); //true9 Console.WriteLine("s1.Equals(s2) ? " + s1.Equals(s2)); //true 10 Console.WriteLine("String.Compare(s1,s,true) ? " + String.Compare(s1, s, true)); //0 11 Console.WriteLine("------------------------"); 12 13 14 char[] chr = { 'a', 'b', 'c' }; 15 String s3 = new String(chr); 16 Console.WriteLine("s1==s3 ? " + (s1 == s3)); //true 17 Console.WriteLine("s1.equals(s3) ? " + s1.Equals(s3)); //true 18 Console.WriteLine("String.Compare(s3, s, true) ? " + String.Compare(s3, s, true)); //0 19 Console.WriteLine("------------------------"); 20 21 String t = "bc"; 22 String s4 = "a" + t; 23 Console.WriteLine("s1==s4 ? " + (s1 == s4)); //true 24 Console.WriteLine("s1.equals(s4) ? " + s1.Equals(s4)); //true 25 Console.WriteLine("String.Compare(s4, s, true) ? " + String.Compare(s4, s, true)); //0 26 Console.WriteLine("------------------------"); 27 28 String s5 = "a" + "bc"; 29 Console.WriteLine("s1==s5 ? " + (s1 == s5)); //true 30 Console.WriteLine("s1.equals(s5) ? " + s1.Equals(s5)); //true 31 Console.WriteLine("String.Compare(s5, s, true) ? " + String.Compare(s5, s, true)); //0 32 33 34 Console.Read(); 35 36 37 }

從運行結果可以看出,無論你怎么折騰,只要二個字符串的內容完全相同,引用始終只有一個。

?

java中其實也有類似的機制,稱為“字符串常量池”,但是java中卻允許 用new String(String str)的方式創建多個相同內容的實例。為了能區別這二種情況,java中的==與equals用來判斷字符串是否相等時,賦予了不同的含義。

==用于判定二個字符串是否引用相同,而equals用于判斷二個字符串是否內容相同

public static void testString(){
String s = "Abc";
String s1 = "abc";
String s2 = "abc";

System.out.println("s1==s2 ? " + (s1==s2)); //true
System.out.println("s1.equals(s2) ? " + s1.equals(s2)); //true
System.out.println("s1.equalsIgnoreCase(s) ? " + s1.equalsIgnoreCase(s)); //true
System.out.println("------------------------");

String s3 = new String("abc");
System.out.println("s1==s3 ? " + (s1==s3)); //false
System.out.println("s1.equals(s3) ? " + s1.equals(s3)); //true
System.out.println("s3.equalsIgnoreCase(s) ? " + s3.equalsIgnoreCase(s)); //true
System.out.println("------------------------");

char[] chr ={'a','b','c'};
String s4 = new String(chr);
System.out.println("s1==s4 ? " + (s1==s4)); //false
System.out.println("s1.equals(s4) ? " + s1.equals(s4)); //true
System.out.println("s4.equalsIgnoreCase(s) ? " + s4.equalsIgnoreCase(s)); //true
System.out.println("------------------------");

String t ="bc";
String s5 = "a" + t;
System.out.println("s1==s5 ? " + (s1==s5)); //false
System.out.println("s1.equals(s5) ? " + s1.equals(s5)); //true
System.out.println("s5.equalsIgnoreCase(s) ? " + s5.equalsIgnoreCase(s)); //true
System.out.println("------------------------");

String s6 = "a" + "bc";
System.out.println("s1==s6 ? " + (s1==s6)); //true
System.out.println("s1.equals(s6) ? " + s1.equals(s6)); //true
System.out.println("s6.equalsIgnoreCase(s) ? " + s6.equalsIgnoreCase(s)); //true


}

1 public static void testString(){2 String s = "Abc";3 String s1 = "abc";4 String s2 = "abc";5 6 System.out.println("s1==s2 ? " + (s1==s2)); //true7 System.out.println("s1.equals(s2) ? " + s1.equals(s2)); //true8 System.out.println("s1.equalsIgnoreCase(s) ? " + s1.equalsIgnoreCase(s)); //true9 System.out.println("------------------------"); 10 11 String s3 = new String("abc"); 12 System.out.println("s1==s3 ? " + (s1==s3)); //false 13 System.out.println("s1.equals(s3) ? " + s1.equals(s3)); //true 14 System.out.println("s3.equalsIgnoreCase(s) ? " + s3.equalsIgnoreCase(s)); //true 15 System.out.println("------------------------"); 16 17 char[] chr ={'a','b','c'}; 18 String s4 = new String(chr); 19 System.out.println("s1==s4 ? " + (s1==s4)); //false 20 System.out.println("s1.equals(s4) ? " + s1.equals(s4)); //true 21 System.out.println("s4.equalsIgnoreCase(s) ? " + s4.equalsIgnoreCase(s)); //true 22 System.out.println("------------------------"); 23 24 String t ="bc"; 25 String s5 = "a" + t; 26 System.out.println("s1==s5 ? " + (s1==s5)); //false 27 System.out.println("s1.equals(s5) ? " + s1.equals(s5)); //true 28 System.out.println("s5.equalsIgnoreCase(s) ? " + s5.equalsIgnoreCase(s)); //true 29 System.out.println("------------------------"); 30 31 String s6 = "a" + "bc"; 32 System.out.println("s1==s6 ? " + (s1==s6)); //true 33 System.out.println("s1.equals(s6) ? " + s1.equals(s6)); //true 34 System.out.println("s6.equalsIgnoreCase(s) ? " + s6.equalsIgnoreCase(s)); //true 35 36 37 }

轉載于:https://www.cnblogs.com/bluewhale84/p/5726262.html

總結

以上是生活随笔為你收集整理的java 与 c#的 中 字符串比较“==”与“equals”的差异的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。