2 回答

TA貢獻(xiàn)1831條經(jīng)驗 獲得超10個贊
請注意,每個字符都打印有print,而不是println。
for (int i = 0; i < chars.length; i++){
System.out.print(chars[i]);
}
System.out.println(); // To a new line
System.out.println(chars.length); //this also shows 16

TA貢獻(xiàn)1829條經(jīng)驗 獲得超6個贊
首先,Java 不會將數(shù)組的長度附加到數(shù)組中。也沒有String.toCharArray。所以,無論你看到什么,這都不是解釋。
另一方面,我無法解釋到底發(fā)生了什么,因為您沒有向我們提供實際的輸入和輸出。
即便如此,從您的代碼中可以明顯看出一些明顯的誤解
首先,這個語句沒有做任何有用的事情:
chars = new char[input.length()];
為什么?因為
chars = input.toCharArray();
將返回一個全新的數(shù)組。它不會填充您之前分配的字符數(shù)組。(任務(wù)只是取代了它......)
第二個誤解是這樣的:
if (chars[0] == 4){
....
}
目前尚不清楚您期望測試做什么,但它不是在測試字符“4”。它正在測試 Unicode 代碼點 \u0004 ... 這是 ASCIIEOT控制字符,或CNTRL-D在典型的西方鍵盤上。
簡而言之,驗證可能沒有測試您所期望的。(為什么您希望用戶輸入控制字符?)
要測試字符 '4' ... 使用字符文字。單引號。
if (chars[0] == '4'){
....
}
添加回答
舉報