當我將它與字符串連接時,應該爲單個字符選擇什麼樣的引號?用單個字符連接字符串時引用標記
String s1="string";
我應該使用
String s2=s1+'c';
或者
String s2=s1+"c";
?
當我將它與字符串連接時,應該爲單個字符選擇什麼樣的引號?用單個字符連接字符串時引用標記
String s1="string";
我應該使用
String s2=s1+'c';
或者
String s2=s1+"c";
?
您可以同時使用!試一試!
「爲什麼?」你問。這裏的魔術是+
運營商。
當+
與字符串一起使用時,它會自動將另一個操作數轉換爲字符串!這就是爲什麼它可以與'c'
一起使用的字符。它也可以用於"c"
,因爲當然,"c"
是一個字符串文字。
不僅如此,你甚至可以添加整數轉換爲字符串:
String s2=s1+1;
U可以有兩種diferent方式使用它:String s2=s1+'c';
和 char x = 'c'; String s2 = s1 + x;
這兩種方法都OK,但如果你正在進入詳情那麼也許
String s2=s1+'c';
需要更少的內存比第二種方法,因爲char是字符串,而只是requir兩個字節es 8+字節。但我不認爲這種細微差別在大多數情況下都很重要,而且我甚至不確定這種差異是否會存在,因爲JVM可能會對它進行優化
Java會自動爲您進行轉換,所以它不會「我真的很重要,但我個人只是使用一個字符串(雙引號),因爲我個人更喜歡儘量減少如果我可以阻止它的'自動的東西'。此外,如果您決定'c'應該是'csomething',那麼您必須將其改爲boudle報價。
但我想我只是挑剔......
這些是2種不同類型的鑄造:隱式轉換和明確鑄造。
String s2=s1+'c';
這是一個隱式轉換,這意味着魔術由編譯器完成(無開銷)。
String s2=s1+"c";
這是一個顯式的鑄造,因爲「c」被轉換爲對象,如:
Object o = "c";
String s2 = (String) o;
這意味着轉換必須爲空指針,這將創建的開銷進行檢查。
因此,儘管這兩種方式都有效,但我更喜歡從角色('c')投射,因爲這會創造更少的開銷!