我正在编写一个简单的代码,它将扫描仪读取的输入保存到变量word
中。
作业需要创建一个单独的方法,该方法将获取该字符串并将所有字母转换为'?'标记。然而,在空间,应该有一个空间。
问题是,每次运行此代码时,它都会在空间停止。
这是我的代码:
import java.util.Scanner;
public class commonPhrase {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String word;
System.out.print("Welcome to the Guessing Game.");
System.out.println("");
System.out.println("Please enter a common phrase");
word = input.next();
createTemplate(word);
}
public static String createTemplate(String word) {
String sPhrase = "";
for (int i=0; i < word.length(); i++) {
if (word.charAt(i) == ' '){
sPhrase += " ";
}
else {
sPhrase += "?";
}
}
System.out.println(sPhrase);
return sPhrase;
}
}
这是一个示例运行:
欢迎来到猜猜游戏 请输入一个常用词组 为什么不添加空格!!!!!!!
???
答案 0 :(得分:4)
您在next()
上调用Scanner
,但该方法会抓取下一个令牌,默认情况下它会按空格分隔令牌。你只收集了一个字。
改为呼叫nextLine()
,抓取整行的文字。
word = input.nextLine();
使用上面的修复程序运行示例:
Welcome to the Guessing Game.
Please enter a common phrase
Stack Overflow
????? ????????