使用
import java.util.Scanner;
.
.
.
Scanner scan = new Scanner(System.in);
.
.
.
Integer.parseInt(scan.next());
或
import java.util.Scanner;
.
.
.
Scanner scan = new Scanner(System.in);
.
.
.
scan.nextInt();
哪一个更有用,或者更准确;哪个跑得更快?
现在,这只是Sun的实现,但下面是下一个int (int基数)的实现。
注意它使用了一个特殊的模式(integerPattern()
)。这意味着如果您使用next()
,您将使用默认模式。现在,如果你只是做了一个new Scanner()
,你将使用一个典型的空白模式。但如果你用的是不同的模式,你就不能保证你能听懂一个单词。你可能是在接台词什么的。
在一般情况下,我强烈推荐使用nextInt()
,因为它为您提供了一个抽象,减少了出错的可能性,并在出错时提供了更多的信息。
在你空闲的时候阅读:
public int nextInt(int radix) {
// Check cached result
if ((typeCache != null) && (typeCache instanceof Integer)
&& this.radix == radix) {
int val = ((Integer)typeCache).intValue();
useTypeCache();
return val;
}
setRadix(radix);
clearCaches();
// Search for next int
try {
String s = next(integerPattern());
if (matcher.group(SIMPLE_GROUP_INDEX) == null)
s = processIntegerToken(s);
return Integer.parseInt(s, radix);
} catch (NumberFormatException nfe) {
position = matcher.start(); // don't skip bad token
throw new InputMismatchException(nfe.getMessage());
}
}
我的直觉是扫描。下一步,扫描。Next可以在换行符或空格或其他垃圾中读取。可能需要更长的时间来筛选垃圾字符
哪一个更快,我认为手动解析Integer。parseInt比scan更快。nextInt会做一个基于正则表达式的匹配,然后做一个Integer。对值
进行parseInthttp://download.oracle.com/javase/1 5 0/docs/api/java/util/Scanner.html # nextInt ()
干杯!
nextInt()方法更方便。
在应用用户验证时使用Integer.parseInt()
假设您希望程序接受用户输入为5,并且希望在用户键入'——5'时显示自定义消息,其中'——'为空格。在这种情况下,Integer.parseInt()是有用的。