java中的普通输入和快速输入
一、普通输入(简单但是相对较慢)
java的输入方法最常见的就是Scanner类
1、使用步骤
-
创建类变量
Scanner in = new Scanner(System.in);
-
调用方法进行输入
int a = in.nextInt();
2、常用方法
- nextInt()
- nextFloat()
- nextDoule()
- next()
- nextLine()
注意:
nextlnt():只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。
nextFloat()、nextDouble()这些也是以此类推,只能读取符合该类型的数据。
next():只读取输入直到空格。它不能读两个由空格或符号隔开的单词。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)
nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。
3、使用示例
public class Test {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整数");
int a = in.nextInt();
System.out.println(a);
System.out.println("请输入一个float");
float b = in.nextFloat();
System.out.println(b);
System.out.println("请输入一个double");
double c = in.nextDouble();
System.out.println(c);
System.out.println("请输入一个字符串(空格结尾)");
String d = in.next();
System.out.println(d);
System.out.println("请输入一个字符串(换行结尾)");
String e = in.nextLine();
System.out.println(e);
}
}
二、快速输入(复杂但是比Scanner快很多)
快速输入使用的是BufferedReader、BufferedWriter等
1、使用步骤
-
创建类变量
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // 输入流 StreamTokenizer st = new StreamTokenizer(in); // 解析输入
-
调用方法
// 读取一个数字 st.nextToken(); int n = (int) st.nval; // 读取一个以字母开头的字符串,空格结尾 st.nextToken(); String s1 = st.sval;
2、常用方法
- nextToken()
注意:
想要输入就必须调用nextToken,然后使用nval来获取数值
sval接受的字符串必须以字母开头,数字开头的不行
3、使用示例
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // 输入流
StreamTokenizer st = new StreamTokenizer(in); // 解析输入
System.out.println("请输入一个整数:");
st.nextToken();
int n = (int) st.nval;
System.out.println("请输入一个非数字开头的字符串");
st.nextToken();
String s = st.sval;
System.out.println(s);
}
}