for循环没有循环我的else语句(Java)?

时间:2014-12-12 23:16:55

标签: java eclipse

我正在编写一个简单的代码,它将扫描仪读取的输入保存到变量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;
    }
}

这是一个示例运行:

  

欢迎来到猜猜游戏   请输入一个常用词组   为什么不添加空格!!!!!!!
  ???

1 个答案:

答案 0 :(得分:4)

您在next()上调用Scanner,但该方法会抓取下一个令牌,默认情况下它会按空格分隔令牌。你只收集了一个字。

改为呼叫nextLine(),抓取整行的文字。

word = input.nextLine();

使用上面的修复程序运行示例:

Welcome to the Guessing Game.
Please enter a common phrase
Stack Overflow
????? ????????