java输入空行结束
最近两次笔试都被这一个问题困扰
如何在输入空行后停止输入,尝试了各种方法,以下是可以实现该目的的代码:
1
2
3
4
5
6
7
8
9
10
|
public static void main(String[] args) { Scanner in = new Scanner(System.in); while ( true ){ //第一处 String s = in.nextLine(); if (s.equals( "" )) //第二处 break ; System.out.println(s); } System.out.println( "Over Input" ); } |
以上代码第一处判断条件可以替换为in.hasNextLine(),但是不可以是in.hasNext().第二处判断条件可以是s.isEmpty(),也可以是s.length == 0。
我查找资料发现:
next()与nextLine有以下区别:
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
简单地说,next方法不能得到带空格的字符串。
而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
java输入数据,空格继续,回车结束输入
普通版
可输入,可输出。带详细的注释
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.Scanner; public class SumDemo { public static void main(String[] args) { System.out.println( "请输入两个数字,中间用空格隔开,例如5 5" ); //得到一个扫描器,用来扫描 系统的输入 Scanner input = new Scanner(System.in); //申明一个临时的字符串变量temp,用来保存 扫描器读取的一行; String temp = input.nextLine(); //temp字符串首先trim()一下,就是去掉两边的空白, //因为有的人可能输入的是 空格5空格5空格回车。. //所以去掉两边的空格变成 5空格5回车 就符合要求了 //split(" ")方法表示,用空格去切割字符串,返回的结果是一个字符串数组 String[] ss = temp.trim().split( " " ); //从两个字符串中解析得到两个数字,并求和 int num1 = Integer.parseInt(ss[ 0 ]); int num2 = Integer.parseInt(ss[ 1 ]); int sum = num1+num2; //输出结果 System.out.println( "输入的数字是" +num1+ " " +num2+ "两数的和是:" +sum); //养成良好的习惯,打开了的资源要记得关闭,我们打开了扫描器,就要关闭扫描器 input.close(); } } |
升级版
可重复输入数字,重复输出结果,并带退出功能、
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.Scanner; public class SumTest { public static void main(String[] args) { Scanner input = new Scanner(System.in); while ( true ){ System.out.println( "如果输入exit,那么退出。输入两个数字,用空格隔开" ); String temp = input.nextLine(); if (temp.trim().equals( "exit" )){ break ; } String[] ss = temp.trim().split( " " ); int num1 = Integer.parseInt(ss[ 0 ]); int num2 = Integer.parseInt(ss[ 1 ]); int sum = num1+num2; System.out.println( "输入的数字是" +num1+ " " +num2+ "两数的和是:" +sum); } input.close(); } } |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/sinat_36059653/article/details/78026573