2014-10-10 46 views
11

我是新來的java,所以很抱歉,如果這是一個明顯的問題。如何閱讀在字符串中的字符在java中

我試圖按字符讀取字符串來創建樹節點。 例如,輸入"HJIOADH" 和節點都H J I O A D H

我注意到,

char node = reader.next().charAt(0); I can get the first char H by this 
char node = reader.next().charAt(1); I can get the second char J by this 

我可以使用一個週期來獲取所有的人物?像

for i to n 
    node = reader.next().charAt(i) 

我試過了,但它不起作用。

我該怎麼做?

非常感謝您的幫助。

Scanner reader = new Scanner(System.in); System.out.println(「輸入您的節點爲大寫字母無空格,'/'結尾」); int i = 0; char node = reader.next()。charAt(i); 而(節點!=「/」){

 CreateNode(node); // this is a function to create a tree node 
     i++; 
     node = reader.next().charAt(i); 

    } 
+2

安置自己的完整的代碼,因爲我們不知道讀者? – brso05 2014-10-10 18:52:39

+2

使用'char [] array =「HJIOADH」.toCharArray();獲取數組中的字符''探索'String'類中存在的方法本身。 – Braj 2014-10-10 18:52:39

+0

謝謝大家!我知道了。 – Ahaha 2014-10-10 19:10:24

回答

9

你只需要一次next()你的讀者,除非它有很多連連nrepeated相同托克的。

String nodes = reader.next(); 
for(int i = 0; i < nodes.length(); i++) { 
    System.out.println(nodes.charAt(i)); 
} 
+0

非常感謝,正是我想要的!對不起,我沒有足夠的聲望投票給你.. – Ahaha 2014-10-10 19:07:37

0

爲Braj提到的,你可以嘗試reader.toCharArray()和那麼你就可以很容易地使用循環

char[] array = reader.toCharArray(); 
for (char ch : array) { 
    System.out.println (ch); 
} 
+0

非常感謝你,這會工作,但我不想消耗額外的空間。 – Ahaha 2014-10-10 19:11:35

+0

@Ahaha你是什麼意思的額外空間? – 2015-04-25 02:32:41