大家好,又见面了,我是你们的朋友全栈君。
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入,每个next获取输入对应的字符。
Scanner sc = new Scanner(System.in);
当我们通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用hasNext 与 hasNextLine 判断是否还有输入的数据:
hasNext和next测试
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
if (scanner.hasNext())
System.out.println("输出:"+scanner.next());
scanner.close();
}
请输入:
测试一下 哈哈
输出:测试一下
hasNextLine和nextLine
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
if (scanner.hasNextLine())
System.out.println("输出:"+scanner.nextLine());
scanner.close();
}
请输入:
测试一下 哈哈哈
输出:测试一下 哈哈哈
两者比较:
很明显,从结果来看,next获取下一个字符串,输入间隔为空格或回车时阶段,而nextLine则是获取一行数据。
next():
nextLine():
scanner.nextLine().trim();//去掉输入两端的空格
String[] arrStr = scanner.nextLine().trim().split(" ");//将输入的一行按照空格拆分为数组
while (scanner.hasNextLine()){
int len = Integer.parseInt(scanner.nextLine().trim());
int[] arrInt = new int[len];
String[] contentStr = scanner.nextLine().trim().split(" ");
int i =0;
for (String content:contentStr){
arrInt[i++] = Integer.parseInt(content);
}
System.exit(0);
}
其他的获取输入方式:
hasNext()—-next()
hasNextInt()—-nextInt()
hasNextBoolean—-nextBoolean()
hasNextByte()—-nextByte()
hasNextShort()—-nextShort()
hasNextInt()—-nextInt()
hasNextLong()—-nextLong()
hasNextFloat()—-nextFloat()
hasNextDouble()—-nextDouble()
hasNextBigInteger()—-nextBigInteger()
hasNextBigDecimal()—-nextBigDecimal()
以下三种退出方式:
while (!scanner.hasNext("0") ){
//标志位退出
}
while (scanner.hasNextLine() ){
// 代码段
if(scanner.hasNext("0"))//内部标志退出
break;
}
while (scanner.hasNextLine() ){
// 代码段
System.exit(0);//系统退出
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156448.html原文链接:https://javaforall.cn