1、使用标准输入串对象System.in
System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字,这就很不适合,需要其他方法取得这样的输入,这时可以使用java.util.Scanner类。
2、使用Scanner取得一个字符串或一组数字
import java.util.Scanner;
public class ScannerDemo{
public static void main( String[ ] args ){
Scanner sc = new Scanner(System.in);
System.out.print( "Please enter a string : " );
System.out.print( "Your input is : " + sc.next( ) );
}
}
在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()
方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点
型;nextBoolean()转换成布尔型。
3、使用BufferedReader取得含空格的输入
Scanner取得的输入以space, tab, enter 键为结束符,要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现。例如:
import java.io.*;
public class BufferedReaderDemo{
public static void main(String[] args) throws IOException{
//使用BufferedReader的readLine( )方法
//必须要处理java.io.IOException异常
BufferedReader br = new BufferedReader(
new InputStreamReader( System.in ) );
//java.io.InputStreamReader继承了Reader类
String tx = br.readLine();
System.out.println(tx);
}
}
循环获取数据的实现
StringBuffer response = new StringBuffer();
BufferedInputStream buff = new BufferedInputStream(System.in);或
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
char inChar;
try {
int in = buff.read();
while (in != -1 && in != '\n') {
inChar = (char)in;
response.append(inChar);
in = buff.read();
}
buff.close();
} catch (IOException e) {
e.printStackTrace();
}
--转自