Java程序開發過程中,需要從鍵盤獲取輸入值是常有的事。C語言提供scanf()函數,C++提供cin()獲取鍵盤輸入值。那么Java有什么解決方法呢?
方法一:從控制台接收一個字符,然后將其打印出來
package pkg2020華南虎;
import java.io.*;
/**
*
* @author yl
*/
public class JavaInput {
public static void main(String[] args) throws IOException {
System.out.println("Enter a Char:");
char i=(char)System.in.read();
System.out.println("Your char is:"+i);
}
}
雖然此方式實現了從鍵盤獲取輸入的字符,但是System.out.read()只能針對一個字符的獲取,同時,獲取進來的變量類型只能是char。當輸入數字時,還需要轉換類型。
方法二:從控制台接收一個字符串,然后將其打印出來。需要擁到BufferedReader類和InputStreamReader類。
package pkg2020華南虎;
import java.io.*;
/**
*
* @author yl
*/
public class JavaInput02 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=null;
System.out.println("Enter your value:");
str=br.readLine();
System.out.println("Your value is:"+str);
}
}
方法三:最簡單,最強大的,就是Scanner類
package pkg2020華南虎;
import java.util.Scanner;
/**
*
* @author yl
*/
public class JavaInput03 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("Input your name:");
String name=sc.nextLine();
System.out.println("Input your age:");
int age=sc.nextInt();
System.out.println("Input your salary:");
double salary=sc.nextDouble();
System.out.println("Your information is follow as:");
System.out.println("Name:"+name+"\n"+"Age:"+age+"\n"+"Salary:"+salary);
}
}
最后總結一下next()和nextLine()的區別:
在Java中,next()方法是不接收空格的,在接收到有效數據前,所有的空格或者tab鍵等輸入被忽略,若有有效數據,則遇到這些鍵退出。nextLine()可以接收空格或者tab鍵,其輸入應該以enter鍵結束。(這部分不太理解!!!)
最后附上源博客的鏈接:Constructor的博客
