爲什麼我不能做到這一點,我怎麼可以這樣做CPP?我不能獲取字符串顯示與每個字符
public static void main(String args[])
{
String n = "ABCDEFG";
for(int i=0;i<n.length();i++){
System.out.println(n[i]);
}
}
當我編譯它說:「表達式的類型必須是數組類型,但它解析爲字符串」。
爲什麼我不能做到這一點,我怎麼可以這樣做CPP?我不能獲取字符串顯示與每個字符
public static void main(String args[])
{
String n = "ABCDEFG";
for(int i=0;i<n.length();i++){
System.out.println(n[i]);
}
}
當我編譯它說:「表達式的類型必須是數組類型,但它解析爲字符串」。
String
對象不支持操作人員用C重載像++。您可以使用
System.out.println(n.charAt(i));
因爲String
不是數組。
你可以,但是,它使用foreach循環這樣轉換爲char
陣列和循環過它:
for (char c: n.toCharArray())
System.out.println(c);
Undid -1,似乎苛刻。提到將String轉換爲char數組的可能性很好,但是對於OP的問題,這似乎是一個矯枉過正的問題。 –
@Alexander Pogrebnyak:這可能是一個有點「矯枉過正」,但它也可能會快於調用'的charAt(..)'在字符串 – MrSmith42
@ MrSmith42每個charaxter。如果你認爲迭代器做了一些不同的事情,但是對於數組的COPY,你會感到失望。 –
Java不允許操作符重載,像C++一樣。因此[]操作符不能用於字符串。
System.out.println(n.charAt(i);
'char [] chars = n.toCharArray();' – Shivam
@Shivam Kalra。如果不需要,不要轉換爲「字符」數組。 –
@AlexanderPogrebnyak爲什麼不呢?他可以簡單地重複使用使用索引的字符數組。 – Shivam