【问题标题】:Java: Checking for changes in a String with BufferedReaderJava:使用 BufferedReader 检查字符串中的更改
【发布时间】:2013-11-26 22:52:13
【问题描述】:

如果试图让用户输入字符串,使用代码:

String X = input("\nDon't just press Enter: ");

如果他们没有输入任何内容,请询问他们,直到他们输入为止。

我尝试使用 while(x==null) 检查它是否为空,但它不起作用。关于我做错了什么/需要采取不同的做法有什么想法吗?

输入()是:

  static String input (String prompt)
    {
        String iput = null;
        System.out.print(prompt);
        try
        {
            BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
            iput = is.readLine();

        }

        catch (IOException e)
        {
            System.out.println("IO Exception: " + e);
        }
        return iput; 
        //return iput.toLowerCase(); //Enable for lowercase
    }

【问题讨论】:

  • 我真的不知道你想做什么。你的意思是if(x == null)
  • 我想检查他们是否没有在字符串中输入任何内容。问题重新措辞,谢谢。
  • 如果不输入任何内容,iputlength 是什么?

标签: java string null bufferedreader


【解决方案1】:

为了让用户在 Java 中输入,我建议使用扫描器 (java.util.Scanner)。

Scanner input = new Scanner(System.in);

然后你可以使用

String userInput = input.nextLine();

检索用户的输入。最后,为了比较字符串,你应该使用 string.equals() 方法:

public String getUserInput(){
    Scanner input = new Scanner(System.in);
    String userInput = input.nextLine();
    if (!userInput.equals("")){
        //call next method
    } else {
        getUserInput();
    }
}

这个“getUserInput”方法的作用是获取用户的输入并检查它是否为空。如果它不是空白的(“if”的第一个部分),那么它将继续到下一个方法。但是,如果它是空白的(“”),那么它将简单地重新调用“getUserInput()”方法。 有很多方法可以做到这一点,但这可能只是最简单的方法之一。

【讨论】:

  • 谢谢你,很好的回答!
  • 很高兴为您提供帮助!如果这解决了您的问题,请务必标记它,以便将来的读者知道 =)
猜你喜欢
  • 2015-06-07
  • 2014-10-11
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 2018-03-15
  • 2016-12-21
相关资源
最近更新 更多