這個問題在這里已經有了答案: 在Java中,兩個字符相加的結果是int還是char? (8 個回答) 為什么連接的字符會列印一個數字? (7 個回答) 在 Java 中處理字符 [重復] (8 個答案) 12 小時前關閉。
public class TicTacToe {
public static void main(String[] args) {
char [] chars = new char[5];
chars[0] = '0';
chars[1] = '1';
chars[2] = '2';
chars[3] = '3';
chars[4] = '4';
System.out.println(chars);
for (char character : chars) {
System.out.println(character '\n');
}
}
}
輸出在 2 個實體中不同:01234 和 58 59 60 61 62
誰能告訴我這是為什么。它不應該與我們列印出字符陣列相同嗎?
uj5u.com熱心網友回復:
Java 中的Achar加上另一個char結果為 an int(兩個運算元都int在操作之前轉換為,參見JLS 5.6.2)。'0' == 0x30 和 '\n' == 0xa。0x3a == 58。
如果要將字符轉換為字串,請連接字串 ( "\n") 或使用String.valueOf(character).
請參閱相關問題在Java中,兩個字符相加的結果是int還是char?
uj5u.com熱心網友回復:
而不是這個
for (char character : chars) {
System.out.println(character '\n');
}
寫
System.out.println(new String(chars));
那是因為 System.out 是一個 PrintStream。println()對 println(char[] x) 有一個多載
欲了解更多資訊閱讀此
uj5u.com熱心網友回復:
添加 Java 字符、短字符或位元組的結果是一個 int。
因此,該陳述句System.out.println(character '\n');將轉換character為 int 并將 '\n' 轉換為 int 并將它們相加,結果字符 '0'、'1'、'2'、'3'、'4' 的結果為 58 59 60 61 62。比如'\n'的ASCII碼是10,'0'的ASCII碼是48,48 10=58。
uj5u.com熱心網友回復:
除了@knittl 提出的替代方案,您還可以使用StringBuilder:
StringBuilder sb = new StringBuilder();
for (char character : chars) {
sb.append(character).append('\n');
}
System.out.println(sb.toString());
或者使用一個IntStream:
String str = IntStream.range(0, chars.length)
.mapToObj(String::valueOf)
.collect(Collectors.joining("\n"));
System.out.println(str);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/336447.html
上一篇:SafariiOS15視頻問題
