[英]Making a user input only accept int but store in String
完成我的程序,这是我无法弄清楚的唯一部分,我必须检查用户输入的String userPhone
是否为整数
System.out.println("Please enter your phone number (10-dights only)");
String userNumber=sc.nextLine();
while(true) {
if (userNumber.length()==10) {
order01.cust1.setPhoneNumber(userNumber);
break;
}
else if (userNumber.length()!=10) {
System.out.println("Invalid phone number, Enter a valid one");
}
userNumber=sc.nextLine();
}
您可以使用正则表达式来验证String
正好包含十个数字,它们将是\\d{10}
-并且在break
之后不需要else
。 喜欢,
while(true) {
if (userNumber.matches("\\d{10}")) {
order01.cust1.setPhoneNumber(userNumber);
break;
}
System.out.println("Invalid phone number, Enter a valid one");
userNumber=sc.nextLine();
}
检查数字是否匹配。 字符串的matches()方法采用正则表达式。 \\ d *表示所有字符都只能是数字。 在此之前,我们也在检查长度。
while(true) {
if (userNumber.length()==10 && userNumber.matches("\\d*")) {
System.out.println(userNumber);
break;
}
else if (userNumber.length()!=10 || !userNumber.matches("\\d*")) {
System.out.println("Invalid phone number, Enter a valid one");
}
userNumber=sc.nextLine();
}
最简单,最原始的方法是遍历输入字符串(因为您的字符串只有10个单位长),然后使用Character.isDigit
检查每个索引处的Character.isDigit
是否为数字
请参阅该链接以获取更多信息和该链接的原始字幕: 原始代码
请尝试以下方法:
public static boolean isNumber(String string) {
try {
Long.parseLong(string);
} catch (Exception e) {
return false;
}
return true;
}
在您的代码中:
if (isNumber(userPhone)) {
order01.cust1.setPhoneNumber(userNumber);
break;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.