我提前为我的帖子道歉。我今晚决定注册,这是我的第一篇文章。
关于这个问题的一些背景知识。
我正在做一个小项目,我需要从用户输入中获取一个名称,该名称保存在变量中。然后,变量值必须显示输出。
我的问题是。如何在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);
}
答案 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.");
}
}