java輸入空行結(jié)束問題
java輸入空行結(jié)束
最近兩次筆試都被這一個(gè)問題困擾
如何在輸入空行后停止輸入,嘗試了各種方法,以下是可以實(shí)現(xiàn)該目的的代碼:
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。
我查找資料發(fā)現(xiàn):
next()與nextLine有以下區(qū)別:
next()一定要讀取到有效字符后才可以結(jié)束輸入,對(duì)輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結(jié)束符,next()方法會(huì)自動(dòng)將其去掉,只有在輸入有效字符之后,next()方法才將其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結(jié)束符。
簡(jiǎn)單地說,next方法不能得到帶空格的字符串。
而nextLine()方法的結(jié)束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字符,它是可以得到帶空格的字符串的。
java輸入數(shù)據(jù),空格繼續(xù),回車結(jié)束輸入
普通版
可輸入,可輸出。帶詳細(xì)的注釋
import java.util.Scanner;
public class SumDemo {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入兩個(gè)數(shù)字,中間用空格隔開,例如5 5");
//得到一個(gè)掃描器,用來掃描 系統(tǒng)的輸入
Scanner input = new Scanner(System.in);
//申明一個(gè)臨時(shí)的字符串變量temp,用來保存 掃描器讀取的一行;
String temp = input.nextLine();
//temp字符串首先trim()一下,就是去掉兩邊的空白,
//因?yàn)橛械娜丝赡茌斎氲氖?空格5空格5空格回車。.
//所以去掉兩邊的空格變成 5空格5回車 就符合要求了
//split(" ")方法表示,用空格去切割字符串,返回的結(jié)果是一個(gè)字符串?dāng)?shù)組
String[] ss = temp.trim().split(" ");
//從兩個(gè)字符串中解析得到兩個(gè)數(shù)字,并求和
int num1 = Integer.parseInt(ss[0]);
int num2 = Integer.parseInt(ss[1]);
int sum = num1+num2;
//輸出結(jié)果
System.out.println("輸入的數(shù)字是"+num1+" "+num2+"兩數(shù)的和是:"+sum);
//養(yǎng)成良好的習(xí)慣,打開了的資源要記得關(guān)閉,我們打開了掃描器,就要關(guān)閉掃描器
input.close();
}
}升級(jí)版
可重復(fù)輸入數(shù)字,重復(fù)輸出結(jié)果,并帶退出功能、
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,那么退出。輸入兩個(gè)數(shù)字,用空格隔開");
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("輸入的數(shù)字是"+num1+" "+num2+"兩數(shù)的和是:"+sum);
}
input.close();
}
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼
這篇文章主要介紹了ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10
Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能,涉及java針對(duì)目錄與文件的遍歷、匹配、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
Java讀取文件的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了Java讀取文件的簡(jiǎn)單實(shí)現(xiàn)方法,通過一個(gè)讀取txt格式的log文件為例,詳細(xì)的講述了Java讀取文件的方法及原理,需要的朋友可以參考下2014-09-09
基于Java字符串 "==" 與 "equals" 的深入理解
本篇文章是對(duì)Java中的字符串"=="與"equals"進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
SpringBoot+Redis哨兵模式的實(shí)現(xiàn)
本文主要介紹了SpringBoot+Redis哨兵模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
java中ConcurrentHashMap的讀操作為什么不需要加鎖
ConcurrentHashMap完全允許多個(gè)讀操作并發(fā)進(jìn)行,讀操作并不需要加鎖。所以下面這篇文章主要給大家介紹了關(guān)于java中ConcurrentHashMap的讀操作為什么不需要加鎖的相關(guān)資料,需要的朋友可以參考下2018-10-10
SpringBoot前端傳遞數(shù)組后端接收兩種常用的方法
這篇文章主要給大家介紹了關(guān)于SpringBoot前端傳遞數(shù)組后端接收兩種常用的方法,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-04-04

