【问题标题】:Java Beginner logic error help needed [closed]需要Java初学者逻辑错误帮助[关闭]
【发布时间】:2017-04-26 20:59:39
【问题描述】:

我提前为我的帖子道歉。我决定今晚注册,这是我的第一篇文章。

关于这个问题的一点背景。

我正在做一个小型 java 项目,我需要从用户输入中获取一个名称,该名称保存在一个变量中。然后变量值必须显示输出。

我的问题是。它是如何在 java 中完成的,使用 (if) 关键字,使用我的代码创建一个 if 语句,使我的简单 i_PlayerName 方法的任何逻辑错误无效。

更具体地说,我怎样才能确保我的程序只接受一个字符串值,如果输入另一种数据类型,输出消息将显示“用户输入不接受”。

最后,这个过程叫什么?

谢谢大家:)

继续编码。

public void i_PlayerName() {

    String playerName;

    Scanner i_playerName = new Scanner(System.in);
    System.out.println("ENTER YOUR SHIP NAME");
    playerName = i_playerName.nextLine();
    System.out.println("Your vessel has been named " + playerName);
}

【问题讨论】:

标签: java if-statement input output


【解决方案1】:

假设你的意思是 字母 当你说只允许 strings 时,应该这样做。

public static void main(String[] Args) {
    String playerName = "";
    System.out.print("Enter ship name: ");
    Scanner scanner = new Scanner(System.in);
    String i_playerName = scanner.next();
    System.out.println();
    char[] chars = i_playerName.toCharArray();
    boolean isChar = true;
    for (char c : chars) {
        if (!Character.isLetter(c)) {
            isChar = false;
        }
    }
    if(isChar == true) {
        System.out.println("Your vessel has been named: " + i_playerName);
    }
    else {
        System.out.println("User input is not accepted.");
    }

}

【讨论】:

  • 回答效果很好。感谢您的及时帮助。非常感谢。
  • @David-LeeIngham 如果有帮助,请接受答案。不客气。 :)
  • 谢谢,对不起,我一直在度假 :) 你的答案已勾选
【解决方案2】:

当扫描仪正在读取时,如果您将其分配给 String 类型,则无论用户输入数字还是字符串,它都会将输入视为字符串。如果您想在用户输入 String 以外的值时处理这种情况,您可以使用正则表达式来处理,如果输入不匹配,则输出错误。使用以下方法检查输入是否为字符串。

public boolean isStringValue(String s){
    String pattern= "[a-zA-Z]*";
    return s.matches(pattern);
}

//使用上述方法:

String input = scan.next();
if(isStringValue(input)){
//your code
} else {
//output some error
}

【讨论】:

  • 正则表达式中不需要^$
  • 谢谢大家的回答。最近几天我一直在度假,所以我为缓慢的滴答声道歉。
猜你喜欢
  • 2021-04-11
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多