需要Java初学者逻辑错误帮助

时间:2017-04-26 20:59:40

标签: java if-statement input output

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

关于这个问题的一些背景知识。

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

我的问题是。如何在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);
}

2 个答案:

答案 0 :(得分:0)

当扫描程序正在读取时,如果将其分配给String类型,则无论用户是输入数字还是字符串,它都会将输入作为字符串。如果要在用户输入除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
}

答案 1 :(得分:0)

当你只说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.");
    }

}