永发信息网

JAVA 中 判断是不是数字 的两段 代码 有什么区别??

答案:2  悬赏:20  手机版
解决时间 2021-02-13 17:01
System.out.println("输入:");
//String num1 = sc.next();

第2个
if(sc.hasNextInt()==true)
{
int j=sc.nextInt();
}
else
{
System.out.println("输入错误!!!");
}

他们都是可以判断 是否为数字! 那他们的区别在与那里 ??
最佳答案
他们在本质上是一样的,但表现不同。
第一个是先从扫描器(Scanner)中取出数据来转为String,然后使用String的match方法判断是否为数字。
由于已经取出数据了,Scanner的指向位置会+1

第二个是使用Scanner的hasNextInt()来判断下一个数据是否为数字,它并不会改变指向的位置。

为什么说他们本质上是一样的呢?
参见源代码:
Scanner:
public boolean hasNextInt(int paramInt)
{
setRadix(paramInt);
boolean bool = hasNext(integerPattern());
if (bool)
try {
String str = (this.matcher.group(this.SIMPLE_GROUP_INDEX) == null) ? processIntegerToken(this.hasNextResult) : this.hasNextResult;

this.typeCache = Integer.valueOf(Integer.parseInt(str, paramInt));
} catch (NumberFormatException localNumberFormatException) {
bool = false;
}

return bool;
}

-----------------------
String:

public boolean matches(String paramString)
{
return Pattern.matches(paramString, this);
}

可知,他们都是通过正则表达式来判断是否为整数的。

同学,你需要注意一点,如果我们有一个需求:“判断给定的字符串是否为纯数字”,我们最好使用第一个方法,不能用第二个。
在大多数情况下,Scanner并不常用。
全部回答

第一个

import java.util.*; public class he{  public static void main(string args[]){   int zhengshu=0;   int gewei,shiwei,baiwei,he;   scanner shuru=new scanner(system.in);   system.out.println("输入一个三位数整数");   zhengshu=shuru.nextint();   while(zhengshu<100||zhengshu>999){   system.out.println("不是三位数,请重新输入");   zhengshu=shuru.nextint();   }   gewei=zhengshu%10;   shiwei=zhengshu/10%10;   baiwei=zhengshu/100;   he=gewei+shiwei+baiwei;   system.out.println("各位上的数字之和为:"+he);  } }

第二个 import java.util.*; public class he{  public static void main(string args[]){   int nian=0;   scanner shuru=new scanner(system.in);   system.out.println("请输入年号:");   nian=shuru.nextint();    while(zhengshu<100||zhengshu>999){    system.out.println("年号不能小于零,请重新输入:");     nian=shuru.nextint();   }  if(nian%4==0)  system.out.println(nian+"年是闰年。");  else system.out.println(nian+"年是平年。");

 } }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
格菲美甲地址在哪,我要去那里办事
中国有哪些城市被评为全国优秀旅游城市?
唐记狗肉馆在哪里啊,我有事要去这个地方
婆媳关系、不过还没算过门、哎、这大过年的、
患者女,45岁。喝排骨汤后突然出现右上腹持续
海豚湾美甲(西城店)怎么去啊,我要去那办事
我电脑有一个独立显卡,集显不显示
新开小吃在什么地方啊,我要过去处理事情
现在青岛到北京的火车还有吗
农业生产经营者
哪个国家的进口地板最好
静炫是什么意思
九新电器批发部在什么地方啊,我要过去处理事
男人尚地址有知道的么?有点事想过去
汽车臭氧消毒多少钱一次啊,有用吗,有没有好
推荐资讯
亲子阅读馆地址有知道的么?有点事想过去
【怎么才能更好的辨别气味RT辨别粉状固体的气
请问,家用自来水净水器好用吗?
宜阳残疾人康复门诊我想知道这个在什么地方
报刊亭(大同路)地址在哪,我要去那里办事
珍菓蜜制鲜饮这个地址在什么地方,我要处理点
中国农业银行(上海象州路支行)地址有知道的么
橙光游戏阳光穿透泛白的记忆背景音乐
连我学习蛙泳都要慢动作分解的,对于体育就是
wps wifi 怎么破~我曾看到一个人破过一个。
香尔纯榨油坊在哪里啊,我有事要去这个地方
请问一下自考资料在自考办可以买到吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?