在下面的示例中,該程序片段不能編譯,但如果我們用String.valueOf(char)
替換方法Character.toString(char)
,則一切正常。什麼是Character.toString的問題在這裏?在文檔中,這些方法似乎具有相同的行爲。感謝您的解釋。String.value0f和Java中的Character.toString之間的不同行爲
public static void main (String args[]) {
String source = "19/03/2016 16:34";
String result = Character.toString(source.substring(1,3));
System.out.print(result);
}
我不明白。 'Character.toString(...)'接受一個'char'。你正在給一個'String'。你期望什麼? – Tunaki
'source.substring(1,3)'的結果是兩個字符的字符串'「9 /」'。你期望'Character.toString()'做了什麼?在String上調用'String.valueOf()'什麼也不做;它已經是一個字符串。也許你應該閱讀['substring(int beginIndex,int endIndex)']的javadoc(https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring%28int, %20int%29) – Andreas
@oukios'source.substring(1,3)'返回一個字符串。你可以指定它不需要字符串方法 –