通過Scanner類獲取用戶輸入時,控制台會一直等待用戶的輸入,可以輸入不同類型的值。本篇博客主要講解從控制台輸入值,即Scanner類的使用方法。
Api文檔中關於Scanner類的構造方法
鍵盤輸入:Scanner(InputStream source)
鍵盤輸入數字型:byte,short,int,long,float,double
/*輸入數字型:byte,short,int,long,float,double*/
public class scannerDemo {
public static void main(String args[]) {
//聲明Scanner,方式為鍵盤輸入
Scanner sc = new Scanner(System.in);
//輸入一個int型
System.out.print("輸入一個int型數字:");
int inum = sc.nextInt();
System.out.println("你輸入了一個int型數學:" + inum);
//判斷輸入的是否為int型
System.out.print("輸入一個int型數字:");
if(sc.hasNextInt()) {
int inum2 = sc.nextInt();
System.out.println("輸入的是int型值:" + inum2);
}else {
System.out.println("輸入的類型不是int型");
}
//從鍵盤輸入byte型值
System.out.println("輸入一個byte型值");
byte b = sc.nextByte();
System.out.println("輸入的byte值為:" + b);
//從鍵盤輸入short型值
System.out.println("輸入一個short型值");
short s = sc.nextShort();
System.out.println("輸入的short值為:" + s);
//從鍵盤輸入long型值
System.out.println("輸入一個long型值");
long l = sc.nextLong();
System.out.println("輸入的long值為:" + l);
//從鍵盤輸入float型值
System.out.println("輸入一個float型值");
float f = sc.nextFloat();
System.out.println("輸入的float值為:" + f);
//從鍵盤輸入double型值
System.out.println("輸入一個double型值");
double d = sc.nextDouble();
System.out.println("輸入的double值為:" + d);
}
}
展示效果:
鍵盤輸入字符串型:String
/*輸入String型*/
public class InputStringDemo {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
//nextLine形式輸入String值
System.out.println("輸入一個字符串");
System.out.println(sc.hasNextLine()); //判斷是否有下一行
String str = sc.nextLine();
System.out.println("輸入的String值為:" + str);
//next形式輸入String值
System.out.println("再輸入一個字符串");
System.out.println(sc.hasNext()); //判斷是否有非空字符
String string = sc.next();
System.out.println("輸入的String值為:" + string);
}
}
展示效果:
۵ has xxxx是檢查輸入是否符合該形式,返回值是boolean型;next xxx是以該形式讀取輸入的值
۵ 采用has xxxx的話,后面也要用next xxxx。比如前面用hasNextLine,那么后面要用 nextLine 來處理輸入
hasNext與hasNextLine的區別:
۵ hasNext是檢查是否有非空字符
۵ hasNextLine用於檢查控制台輸入或者讀取文本文件時的輸入掃描器(java.util.Scanner類)掃描,當掃描到存在下一行時,hasNextLine返回true,沒有下一行輸入或者文本文件沒有下一行時,返回false
next與nextLine的區別:
۵ next()一定要讀取到有效字符后才可以結束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next()方法會自動將其去掉,只有在輸入有效字符之后,next()方法才將其后輸入的空格鍵、Tab鍵或等視為分隔符或結束符,簡單來說next方法不能得到帶空格的字符串
۵ nextLine()方法的結束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字符,它是可以得到帶空格的字符串的。
鍵盤輸入字符型:char
public class charDemo {
public static void main(String args[]) {
//輸入char字符:實際上就是String字符串取第一個字符
System.out.println("輸入一個字符:");
char c1 = sc.next().charAt(0);
System.out.println(c1);
System.out.println("輸入一個字符:");
char c2 = sc.next().toCharArray()[0];
System.out.println(c2);
System.out.println("輸入一個字符:");
char c3 = sc.next().charAt(1);
System.out.println(c3);
}
}
展示效果:
۵ Java中沒有單獨定義輸入char型變量的方法,char型變量的輸入是通過String類的charAt(index)或toCharArray()[index]方法來實現,建議使用charAt(0)
Scanner方法摘要
本博客與CSDN博客༺ཌ༈君☠纖༈ད༻同步發布
