我很困惑與代碼空字符串
public class StringReplaceWithEmptyString
{
public static void main(String[] args)
{
String s1 = "asdfgh";
System.out.println(s1);
s1 = s1.replace("", "1");
System.out.println(s1);
}
}
,輸出是:
所以我的第一個觀點是在一個字符串中的每個字符有一個空字符串""
在兩邊。但如果在'a'
(在字符串中)之後出現這種情況,則應該有兩個'1'
進入第二行輸出(一個用於'a'的結尾,另一個用於's'的開始)。
現在我檢查字符串是否在這些鏈接中表示爲char [] In Java, is a String an array of chars?和String representation in Java我的答案爲YES。
於是,我就一個空字符''
分配給char
變量,但它給我一個編譯器錯誤,
無效字符常量
同樣的過程給出了一個編譯器錯誤,當我嘗試在char[]
char[] c = {'','a','','s'}; // CTE
所以我對三件事情感到困惑。
- 空字符串如何由char []表示?
- 爲什麼我得到上述代碼的輸出?
- 字符串s1在第一次初始化時如何在char []中表示?
對不起,如果我在我的問題的任何部分錯了。
我會從'字符串#replaceAll'而不是從預計'字符串替換# ' –
@TimBiegeleisen剛剛經過測試,它實際上產生的結果只是'String#replace' – Enigo
* *如何表示一個空字符串*「 - 'char [] empty = {};' –