2016-09-18 53 views
1

我想產生一個程序,在這樣的形式輸出用戶的輸入工作wor+ =運算符不串

word

這個增量構建好像不是b工作。

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); 
    } 
} 
} 
+0

參見http://stackoverflow.com/help/someone-answers – c0der

回答

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()); 
} 
+0

完美!非常感謝! :) – InsertRealName

+0

@fabian哦,你是對的。我的錯 – Eran

0

除了其他代碼的問題,關於你的問題主要的一點是,你不能使用聲明中+=運營商,因爲bword仍然是空(它不會編譯)。

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