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