java輸入空行結(jié)束問題
java輸入空行結(jié)束
最近兩次筆試都被這一個問題困擾
如何在輸入空行后停止輸入,嘗試了各種方法,以下是可以實現(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é)束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結(jié)束符,next()方法會自動將其去掉,只有在輸入有效字符之后,next()方法才將其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結(jié)束符。
簡單地說,next方法不能得到帶空格的字符串。
而nextLine()方法的結(jié)束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字符,它是可以得到帶空格的字符串的。
java輸入數(shù)據(jù),空格繼續(xù),回車結(jié)束輸入
普通版
可輸入,可輸出。帶詳細的注釋
import java.util.Scanner; public class SumDemo { public static void main(String[] args) { System.out.println("請輸入兩個數(shù)字,中間用空格隔開,例如5 5"); //得到一個掃描器,用來掃描 系統(tǒng)的輸入 Scanner input = new Scanner(System.in); //申明一個臨時的字符串變量temp,用來保存 掃描器讀取的一行; String temp = input.nextLine(); //temp字符串首先trim()一下,就是去掉兩邊的空白, //因為有的人可能輸入的是 空格5空格5空格回車。. //所以去掉兩邊的空格變成 5空格5回車 就符合要求了 //split(" ")方法表示,用空格去切割字符串,返回的結(jié)果是一個字符串數(shù)組 String[] ss = temp.trim().split(" "); //從兩個字符串中解析得到兩個數(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)成良好的習慣,打開了的資源要記得關(guān)閉,我們打開了掃描器,就要關(guān)閉掃描器 input.close(); } }
升級版
可重復輸入數(shù)字,重復輸出結(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,那么退出。輸入兩個數(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(); } }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot結(jié)合Redis實現(xiàn)緩存
本文主要介紹了SpringBoot結(jié)合Redis實現(xiàn)緩存,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06深入了解SpringBoot中的統(tǒng)一返回和統(tǒng)一異常處理
這篇文章主要為大家詳細介紹了SpringBoot項目中常用的統(tǒng)一返回結(jié)果和統(tǒng)一異常處理,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2024-01-01Spring Boot結(jié)合IDEA自帶Maven插件如何快速切換profile
IDEA是目前 Java 開發(fā)者中使用最多的開發(fā)工具,它有著簡約的設(shè)計風格,強大的集成工具,便利的快捷鍵,這篇文章主要介紹了Spring Boot結(jié)合IDEA自帶Maven插件快速切換profile,需要的朋友可以參考下2023-03-03windows 部署JAVA環(huán)境安裝iDea的詳細步驟
這篇文章主要介紹了windows 部署JAVA環(huán)境安裝iDea的詳細步驟,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08@insert mybatis踩坑記錄,實體接收前端傳遞的參數(shù)
這篇文章主要介紹了@insert mybatis踩坑記錄,實體接收前端傳遞的參數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07