java輸入空行結束
最近兩次筆試都被這一個問題困擾
如何在輸入空行后停止輸入,嘗試了各種方法,以下是可以實現該目的的代碼:
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輸入數據,空格繼續,回車結束輸入
普通版
可輸入,可輸出。帶詳細的注釋
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();
}
}
升級版
可重復輸入數字,重復輸出結果,并帶退出功能、
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();
}
}
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持html5模板網。
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!