java中怎么判断输入的数据是int型还是string型,请指点下面的勘误,谢谢
case2:{Scannerscn=newScanner(System.in);System.out.println("Enteryourpositivebinaryva...
case 2 :
{
Scanner scn= new Scanner(System.in);
System.out.println("Enter your positive binary value> ");
String input=scn.next();
char B = 0;
for (int i = 0; i < input.length()-1; i++)
{
B= input.charAt(i);
}
System.out.println(B);
if (B== 0 || B== 1)
{
int x=Integer.parseInt(input);
int value = 0;
int position =input.length()-1;
int power=1;
for(int j=0;j<=position;j++)
{
int y = x%10;
value= value+(int) (y*Math.pow(2,j));
x=x/10;
}
System.out.println("The equivalent integer value is: "+value);
}
else
{
System.out.println("ERROR! Binary numbers can only contain 0's and 1's.");
}
}
break; 展开
{
Scanner scn= new Scanner(System.in);
System.out.println("Enter your positive binary value> ");
String input=scn.next();
char B = 0;
for (int i = 0; i < input.length()-1; i++)
{
B= input.charAt(i);
}
System.out.println(B);
if (B== 0 || B== 1)
{
int x=Integer.parseInt(input);
int value = 0;
int position =input.length()-1;
int power=1;
for(int j=0;j<=position;j++)
{
int y = x%10;
value= value+(int) (y*Math.pow(2,j));
x=x/10;
}
System.out.println("The equivalent integer value is: "+value);
}
else
{
System.out.println("ERROR! Binary numbers can only contain 0's and 1's.");
}
}
break; 展开
3个回答
展开全部
你好,可以通过Scan 对象的nextInt()获得输入的整数,也可以用nextLine()获得字符串,然后再try catch 中转换为整数,如果转换成功说明输入的是整数,否则不是,可以循环检测。而你写的这个程序下面的
for (int i = 0; i < input.length()-1; i++)
{
B= input.charAt(i);
}
,你是想获得最后一个数吗?,直接 i < input.length(),就行了,不过还是建议你用nextLine,然后用Integer.parseInt(String str),转换。
for (int i = 0; i < input.length()-1; i++)
{
B= input.charAt(i);
}
,你是想获得最后一个数吗?,直接 i < input.length(),就行了,不过还是建议你用nextLine,然后用Integer.parseInt(String str),转换。
追问
谢谢,还有 if (B== 0 || B== 1)怎么写,需要将用户输入的二进制数剔除出来,不进入运算,语句怎么写吖?
追答
你应该是把二进制转换为十进制,那就应该判断输入的每一个字符都是0或者是1,用正则表达式比较方便,是Regex类,它有几个方法可以判断输入的数是不是合法的类型。也可以用循环的方式判断每个字符是不是0,1,如果合法的话,不用先把它转换为Integer类型,因为二进制的长度一般会超过int的范围的,你可以先从最高位取一个字符,根据所在位置计算出代表的int数,然后向下循环计算,把所有结果加在一起就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用正则表达式
String rex="^\\d+$";
if(input.matches(res)){
//是int
}
String rex="^\\d+$";
if(input.matches(res)){
//是int
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询