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
如何又解决这样的问题?
展开
 我来答
YDL_darling
2013-11-29 · 贡献了超过101个回答
知道答主
回答量:101
采纳率:0%
帮助的人:28.8万
展开全部
int a = Integer.parseInt(你输入的值);
if (Math.abs(a) > 999 and Math.abs(a) < 10000) {
// 是4位整数
}
else {
// 不是4位整数
}
追问
0001你看就不能适用了~但是会员名却可以是0001
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freewangfeifei
2013-11-29 · TA获得超过695个赞
知道小有建树答主
回答量:612
采纳率:0%
帮助的人:502万
展开全部
你输入的不是数字么999<input<10000不行么
更多追问追答
追问
那么0001这类的开头是0的不就不符合要求了么?但是本身用户却没有输入错误啊。
追答
额。刚看错;
那得判断字符个数呗,转换为string判断字符个数;
还有你这最上边是C语言,下边是java,你到底想要用什么写?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式