更新時間:2022-07-18 13:14:11 來源:動力節點 瀏覽2807次
在Java教程中,大家會學到Java字符串輸入方法,有多種方法可以在 Java 中獲取字符串輸入。在本節中,我們將討論如何在 Java 中接受 String 輸入。在 Java 中有以下幾種獲取字符串輸入的方法:
通過使用 Java Scanner 類
通過使用 Java BufferedReader 類
通過使用命令行參數
Scanner類在java.util包中定義,用于獲取用戶的輸入。Scanner 類提供以下兩種方法來獲取用戶的輸入。
Scanner.nextLine() 方法
Scanner.next() 方法
讓我們討論每個提到的從用戶那里獲取輸入的方法。
1. Scanner.nextLine() 方法
nextLine ()方法讀取輸入,直到行終止并將光標移動到下一行。nextLine()方法的語法是:
句法:
公共字符串 nextLine()
該方法不接受任何參數。它返回被跳過的字符串。如果該方法找不到要讀取的行,則該方法拋出NoSuchElementException。
文件名:StringInputExample.java
// 導入掃描器類
導入 java.util.Scanner;
公共類 StringInputExample
{
// 主要方法
公共靜態無效主要(字符串argvs [])
{
// 保存用戶輸入的字符串
字符串 str;
// 創建一個 Scanner 類的對象
掃描儀 scnr = new Scanner(System.in);
System.out.print("請輸入一個字符串:"); // 調用方法 nextLine()
// 從用戶那里獲取輸入
str = scnr.nextLine();
// 換行
System.out.println();
// 顯示輸入的字符串
System.out.print("用戶輸入的字符串為:" + str );
}
}
輸出:
說明:顯示Enter a string消息后,光標在控制臺上等待用戶輸入字符串。nextLine()方法讀取直到用戶點擊回車并返回讀取的內容,這些內容由變量str捕獲。輸出中顯示了相同的讀取字符串。請注意,點擊回車按鈕表明該行已終止。
2.Scanner.next() 方法
next()方法讀取輸入,直到行終止或遇到空白。nextLine()和next()方法的主要區別在于后者在遇到空白時終止,而前者僅在按下 enter 時終止。next()方法的語法是:
句法:
公共字符串下一個()
回報:
返回讀取的行。
該方法不接受任何參數。它返回被跳過的字符串。如果該方法找不到要讀取的行,則該方法拋出NoSuchElementException。
文件名:StringInputExample1.java
// 導入掃描器類
導入 java.util.Scanner;
公共類 StringInputExample1
{
// 主要方法
公共靜態無效主要(字符串argvs [])
{
// 保存用戶輸入的字符串
字符串 str;
// 通過創建對象來實例化 Scanner 類
掃描儀 scnnr = new Scanner(System.in);
System.out.print("請輸入一個字符串:");
// 調用方法 next()
// 從用戶那里獲取輸入
str = scnnr.next();
// 換行
System.out.println();
// 顯示輸入的字符串
System.out.print("用戶輸入的字符串為:" + str );
}
}
輸出:
說明:用戶輸入 My Name is Khan。但是,在遇到“我的”這個詞之后是空白。因此,其余三個字沒有被讀取,同樣可以通過觀察輸出來確認。
Java BufferedReader 類用于讀取字符流。該類接受InputStreamReader類的對象。因此,需要創建InputStreamReader類的構造函數,并將其對象作為參數傳遞給 BufferedReader 類。BufferedReader類具有readLine()方法來獲取用戶的輸入。readLine()方法一次讀取一行。
句法:
公共字符串 readLine()
它返回用戶輸入的行。它不包含任何行終止字符,如果已到達流的末尾,則為 null。
讓我們觀察下面的程序來了解BufferedReader類是如何用于從用戶那里獲取輸入的。
文件名:StringInputExample2.java
// 導入語句
導入 java.io.BufferedReader;
導入 java.io.IOException;
導入 java.io.InputStreamReader;
公共類 StringInputExample2
{
// 主要方法
公共靜態 void main(String argvs[]) 拋出 IOException
{
字符串 str;
// 創建 InputStreamReader 類的對象
InputStreamReader inputStrObj = new InputStreamReader(System.in);
// 創建 BufferedReader 類的對象
BufferedReader bufrObj = new BufferedReader(inputStrObj);
System.out.print("請輸入一個字符串:");
// 調用方法 readLine()
// 從用戶那里獲取輸入
str = bufrObj.readLine();
// 換行
System.out.println();
// 顯示輸入的字符串
System.out.print("用戶輸入的字符串為:" + str );
}
}
輸出:
說明:在InputStreamReader類的構造函數中,傳遞了System.in 。之所以這樣做,是因為輸入是從鍵盤獲取的。在InputStreamReader類的幫助下, BufferedReader類存儲用戶通過鍵盤給出的輸入。
命令行參數存在于 main方法(String argvs[]) 中。String argvs[] 是一個字符串數組,它接受一行作為輸入。讓我們借助以下Java程序來了解命令行參數的用法。
文件名:StringInputExample3.java
公共類 StringInputExample3
{
// 主要方法
公共靜態無效主要(字符串argvs [])
{
// 存儲String數組argvs的元素
字符串 str = "";
// 計算字符串數組的大小
整數大小 = argvs.length;
// 循環遍歷字符串數組 argvs 的元素
for(int i = 0; i < 大小; i++)
{
// 將String數組轉換為字符串
str = str + argvs[i] + "";
}
// 顯示輸入的字符串
System.out.print("用戶輸入的字符串為:" + str );
}
}
輸出:
說明:Java命令行參數是在使用java命令執行程序時放入的。字符串數組 argvs[] 中的元素數量由輸入字符串中存在的空格決定。在輸入字符串(“My name is Khan”)中,存在三個空格。因此,數組 argvs 中存在四個字符串元素(“My”、“name”、“is”、“Khan”)。然后使用 for 循環解析數組 argvs,然后將數組 argvs 的元素連接起來再次構建字符串,如上面的輸出所示。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習