2013-01-05 72 views
1

爲什麼我不能做到這一點,我怎麼可以這樣做CPP?我不能獲取字符串顯示與每個字符

public static void main(String args[]) 
{ 
    String n = "ABCDEFG"; 
    for(int i=0;i<n.length();i++){ 
      System.out.println(n[i]); 
    } 
} 

當我編譯它說:「表達式的類型必須是數組類型,但它解析爲字符串」。

+0

'char [] chars = n.toCharArray();' – Shivam

+0

@Shivam Kalra。如果不需要,不要轉換爲「字符」數組。 –

+0

@AlexanderPogrebnyak爲什麼不呢?他可以簡單地重複使用使用索引的字符數組。 – Shivam

回答

2

您想使用charAt功能訪問String的字符。作爲MrSmith42提到,在[]運營商的超載有可能在C++的std::string,但與Java類String

System.out.println(n.charAt(i)); 
+0

感謝它的工作 – metin

+0

很高興我能幫到你! –

1

String對象不支持操作人員用C重載像++。您可以使用

System.out.println(n.charAt(i)); 
2

因爲String不是數組。

你可以,但是,它使用foreach循環這樣轉換爲char陣列和循環過它:

for (char c: n.toCharArray()) 
    System.out.println(c); 
+0

Undid -1,似乎苛刻。提到將String轉換爲char數組的可能性很好,但是對於OP的問題,這似乎是一個矯枉過正的問題。 –

+0

@Alexander Pogrebnyak:這可能是一個有點「矯枉過正」,但它也可能會快於調用'的charAt(..)'在字符串 – MrSmith42

+0

@ MrSmith42每個charaxter。如果你認爲迭代器做了一些不同的事情,但是對於數組的COPY,你會感到失望。 –

2

Java不允許操作符重載,像C++一樣。因此[]操作符不能用於字符串。

System.out.println(n.charAt(i);