2014-10-10 44 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