java如何判断用户输入的是几位数字?题目:用户名必须为4位数字否则报错
intnum;intcount=0;printf("请输入一个数:");scanf("%d",&num);while(0!=num){num/=10;count++;}s...
int num;
int count = 0;
printf("请输入一个数:");
scanf("%d", &num);
while (0 != num)
{
num /= 10;
count++;
}
switch (count)
{
case 1: printf("是一位数\n"); break;
case 2: printf("是两位数\n"); break;
case 3: printf("是三位数\n"); break;
case 4: printf("是四位数\n"); break;
case 5: printf("是五位数\n"); break;
case 6: printf("是六位数\n"); break;
case 7: printf("是七位数\n"); break;
case 8: printf("是八位数\n"); break;
default : printf("大于等于九位\n");
像这样的思路,是不适用的,也不要重复回答啦~因为当你输入0005的时候会判断成用户输了1位数字。所以不符合我的提问.
我的想法
Scanner jp=new Scanner(System.in);
System.out.print("用户名:");
int s1,s2,s3,s4;
int s1=jp.nextInt();
int s2=jp.nextInt();
int s3=jp.nextInt();
int s4=jp.nextInt();
if(0<=s1)
{
}if(s1<=9)
{
}else
{
System.out.print("输入数字不符合");
}
if(0<=s2)
{
}if(s2<=9)
{
}else
{
System.out.print("输入数字不符合");
}
if(0<=s3)
{
}if(s3<=9)
{
}else
{
System.out.print("输入数字不符合");
}
if(0<=s4)
{
}if(s4<=9)
{
}else
{
System.out.print("输入数字不符合");
}
System.out.println(""+s1+s2+s3+s4);
/**
但是这样的问题出现了一个当用户输入一个数字就得回车一下最后的运行结果大致是这样的
用户名:0
0
0
1
0001
如何又解决这样的问题? 展开
int count = 0;
printf("请输入一个数:");
scanf("%d", &num);
while (0 != num)
{
num /= 10;
count++;
}
switch (count)
{
case 1: printf("是一位数\n"); break;
case 2: printf("是两位数\n"); break;
case 3: printf("是三位数\n"); break;
case 4: printf("是四位数\n"); break;
case 5: printf("是五位数\n"); break;
case 6: printf("是六位数\n"); break;
case 7: printf("是七位数\n"); break;
case 8: printf("是八位数\n"); break;
default : printf("大于等于九位\n");
像这样的思路,是不适用的,也不要重复回答啦~因为当你输入0005的时候会判断成用户输了1位数字。所以不符合我的提问.
我的想法
Scanner jp=new Scanner(System.in);
System.out.print("用户名:");
int s1,s2,s3,s4;
int s1=jp.nextInt();
int s2=jp.nextInt();
int s3=jp.nextInt();
int s4=jp.nextInt();
if(0<=s1)
{
}if(s1<=9)
{
}else
{
System.out.print("输入数字不符合");
}
if(0<=s2)
{
}if(s2<=9)
{
}else
{
System.out.print("输入数字不符合");
}
if(0<=s3)
{
}if(s3<=9)
{
}else
{
System.out.print("输入数字不符合");
}
if(0<=s4)
{
}if(s4<=9)
{
}else
{
System.out.print("输入数字不符合");
}
System.out.println(""+s1+s2+s3+s4);
/**
但是这样的问题出现了一个当用户输入一个数字就得回车一下最后的运行结果大致是这样的
用户名:0
0
0
1
0001
如何又解决这样的问题? 展开
7个回答
展开全部
int a = Integer.parseInt(你输入的值);
if (Math.abs(a) > 999 and Math.abs(a) < 10000) {
// 是4位整数
}
else {
// 不是4位整数
}
if (Math.abs(a) > 999 and Math.abs(a) < 10000) {
// 是4位整数
}
else {
// 不是4位整数
}
追问
0001你看就不能适用了~但是会员名却可以是0001
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你输入的不是数字么999<input<10000不行么
更多追问追答
追问
那么0001这类的开头是0的不就不符合要求了么?但是本身用户却没有输入错误啊。
追答
额。刚看错;
那得判断字符个数呗,转换为string判断字符个数;
还有你这最上边是C语言,下边是java,你到底想要用什么写?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询