我只想查看10位数的用户输入。用户输入可以是1到10位数。
我还添加了import java.util.* ;
问题:当用户输入大于10的值时发生异常。 如果用户输入超出范围,则使用Long后再出现相同的错误。 错误:线程中的预期" main" java.util.InputMismatchException
我想限制用户只输入1到10位数
更新了代码
for(int i=0;i<b.length;i++)
{
if(b[i][0]==0)
{
try
{
System.out.println("Enter the account number:");
a=sc.nextLong();
int lth = (int) Math.log10(a) + 1;
if((lth <= 10) && (lth > 0)){
System.out.println("Account number is valid");
break;
}
}
catch(InputMismatchException e)
{
System.out.println("not a valid input");
}
}
}
答案 0 :(得分:1)
变化
a=sc.nextInt();
到
a=sc.nextLong();
或者如果您只想要字符串,那么您可以执行以下操作
String input=sc.next();
s1=a.toString();//no need for this
尝试以下
try
{
System.out.println("Enter the account number:");
String ip=sc.next();
int lth = ip.length();
if((lth <= 10) && (lth > 0)){
System.out.println("Account number is valid");
break;
}
}