gpt4 book ai didi

java - 如果用户输入只是数字或字母,如何使用 nextLine() 检查?

转载 作者:行者123 更新时间:2023-11-30 06:24:56 25 4
gpt4 key购买 nike

我对我的程序有疑问。我试图弄清楚,如何检查用户的 s.nextLine() 输入表单是否仅包含 1 到 49 形式的整数或字母。我知道“eingabe”是一个字符串,所以我不能只使用 if 对吗?

我的问题是,我在 java 编程方面相对较新,并且不知道解决方案。 :/也许你能帮助我,那就太好了!

    public static int Scanner() {
Scanner s = new Scanner(System.in);
String eingabe = s.nextLine();

//???

return eingabe;
}

最佳答案

import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
class MyClass {
public static void main (String[] args) {
try {
int x = Scanner();
if(x >= 1 && x <= 49) {
System.out.println("Yes");
}
else {
System.out.println("No");
}
}
catch(java.lang.NumberFormatException e) {
System.out.println(e);
}
//Second Method Using Regex.
try {
int x = useRegex();
if(x >= 1 && x <= 49) {
System.out.println("Yes");
}
else {
System.out.println("No");
}
} catch(java.lang.NumberFormatException e) {

System.out.println(e);
}
}
public static int Scanner() {
Scanner s = new Scanner(System.in);
String eingabe = s.nextLine();
return Integer.parseInt(eingabe);
}

public static int useRegex() {
Scanner s2 = new Scanner(System.in);
String eingabe = s2.nextLine();
Pattern p = Pattern.compile("^[\\+-]?\\d+$");
Matcher m = p.matcher(eingabe);
boolean b = m.matches();
if(b) {
return Integer.parseInt(eingabe);
}

else {
throw new java.lang.NumberFormatException();
}
}

}

这里我使用 try catch block 来处理输入格式错误的情况。如果错误则异常

java.lang.NumberFormatException

将会发生,如果它是一个有效的数字,那么我将检查它是否在 1 到 49 之间。 Integer.parseInt(num)用于将字符串转换为数字。 https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String) 。Try catch 用于处理没有 . See here

我也提到过使用正则表达式。 See this for regex

关于java - 如果用户输入只是数字或字母,如何使用 nextLine() 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com