+ =运算符不使用字符串

时间:2016-09-18 09:39:04

标签: java for-loop operators

我正在尝试生成一个以这样的形式输出用户输入的程序:

输入:word

瓦特

WO

这种增量构建似乎不起作用。

import java.util.*;
public class SpellMan {
public static void main(String[] args) {
    Scanner kb = new Scanner (System.in) ;
    System.out.println("Give me a word > ");
    String word = kb.nextLine();
    for(int i = 0; i< word.length();i++){
        String bword += ""+word.charAt(i); 

        System.out.println(bword);
    }
}
}

2 个答案:

答案 0 :(得分:3)

您在循环中声明bword,因此在每次迭代中,您都尝试将当前字符连接到未初始化的String变量。

尝试:

String bword = "";
for(int i = 0; i< word.length();i++) {
    bword += word.charAt(i); 
    System.out.println(bword);
}

也就是说,使用StringBuilder会更有效(创建更少的对象)。

StringBuilder bword = new StringBuilder(word.length());
for(int i = 0; i< word.length();i++) {
    bWord.append(word.charAt(i)); 
    System.out.println(bword.toString());
}

答案 1 :(得分:0)

除了其他代码问题之外,关于您的问题标题的要点是您不能在声明中使用+=运算符,因为bword仍为null(它不会编译)。

String bword = ""; //before the loop
bword += word.charAt(i);
System.out.println(bword);