Java获取键盘输入(使用Scanner类获取键盘输入)
部分來(lái)自《瘋狂Java講義》(第二版)
? Scanner是一個(gè)基于正則表達(dá)式的文本掃描器,它可以從文件、數(shù)據(jù)流、字符串中解析出基本類型值和字符串值。
? Scanner主要提供兩個(gè)方法來(lái)掃描輸入:
(1)nextXxx():獲取下一個(gè)輸入項(xiàng)。(其中Xxx可以是Int、Long等代表基本數(shù)據(jù)類型的字符串)
nextInt() 、nextFloat、nextLine、next等等
【例 1】從鍵盤獲取用戶輸入的一個(gè)整數(shù)(int型) http://sc.nextInt();
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
int num = sc.nextInt();//獲取輸入的一個(gè)整數(shù)(只接受int型,如何輸入其他類型將報(bào)錯(cuò))
System.out.println(num);
? 【例 2】獲取一系列的輸入(使用Scanner可以輸入不同的類型) // sc.nextLine(); 和 sc.nextInt(); 和sc.nextFloat();
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
System.out.println("請(qǐng)輸入你的姓名:");
String name = sc.nextLine();
System.out.println("請(qǐng)輸入你的年齡:");
int age = sc.nextInt();
System.out.println("請(qǐng)輸入你的工資:");
float salary = sc.nextFloat();
System.out.println("姓名:"+name+" 年齡:"+age+" 工資:"+salary);
【例 3】Scanner中next()和nextLine()的區(qū)別
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
System.out.println("請(qǐng)輸入第一個(gè)字符串");
String s1 = sc.nextLine();
System.out.println("你輸入的內(nèi)容為:"+s1+"
");
System.out.println("請(qǐng)輸入第二個(gè)字符串");
String s2 = sc.next();
System.out.println("你輸入的內(nèi)容為:"+s2);
運(yùn)行效果:
如何改成:
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
System.out.println("請(qǐng)輸入第一個(gè)字符串");
String s1 = sc.next();
System.out.println("你輸入的內(nèi)容為:"+s1+"
");
System.out.println("請(qǐng)輸入第二個(gè)字符串");
String s2 = sc.nextLine();
System.out.println("你輸入的內(nèi)容為:"+s2);
當(dāng)用戶輸入完第一個(gè)字符串之后,程序就已經(jīng)停止了,也即不能再錄入第二個(gè)字符串了!!!
(2)hasNextXxx():是否還有下一個(gè)輸入項(xiàng)。如果只是判斷是否包含下一個(gè)字符串,則直接使用haxNext()
【例 1】不斷從鍵盤讀取輸入內(nèi)容,并將每次讀入的內(nèi)容直接打印出來(lái)
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
//sc.hasNext():用來(lái)判斷是否包含下一個(gè)字符串
while(sc.hasNext())
{
System.out.println("輸入的內(nèi)容是:"+sc.next());
}
運(yùn)行效果:
(3)useDelimiter()的用法——改變Scanner的分隔符
如果希望改變Scanner的分隔符(不使用空格作為分隔符):
為Scanner設(shè)置分隔符使用useDelimiter(String pattern)即可,該方法的參數(shù)是一個(gè)正則表達(dá)式。
例如:每次讀入一行,不管這一行中是否包含空格,Scanner都把它當(dāng)作一個(gè)輸入項(xiàng)。在這種需求下,我們可以把Scanner的分隔符設(shè)置成回車符(\n),不再使用默認(rèn)的空白作為分隔符。
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
//只把回車作為分隔符(即:不管這一行中是否包含空格,Scanner都將它看成一個(gè)輸入項(xiàng))
sc.useDelimiter("
");
String str = sc.next();
System.out.println("str="+str);
運(yùn)行效果:
(4)簡(jiǎn)單應(yīng)用:輸入一行字符(以空格作為分割)給多個(gè)變量賦值?
【例1】連續(xù)輸入兩個(gè)整形數(shù)字,并輸出他們的和
Scanner sc = new Scanner(System.in);//System.in代表標(biāo)準(zhǔn)輸入(即鍵盤輸入)
Integer a = sc.nextInt();//默認(rèn)以空格作為分隔符
Integer b = sc.nextInt();
System.out.println(a+b);
運(yùn)行效果:
【例2】分別輸入一個(gè)字符和一個(gè)整數(shù),并輸出
Scanner sc = new Scanner(System.in);
char ch = sc.next().charAt(0);//獲取用戶輸入的字符
Integer a = sc.nextInt(); //獲取用戶輸入的整數(shù)
System.out.println("ch="+ch+" a="+a);
總結(jié)
以上是生活随笔為你收集整理的Java获取键盘输入(使用Scanner类获取键盘输入)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 八大员证在哪里可以查询到?(环球网校官方
- 下一篇: “小号Mate 50 Pro”!华为畅享