在Java中我们可以使用Scanner类来读取用户输入的数据,下面来讲下它的具体用法。
导包:
import java.util.Scanner;
创建Scanner类的基本语法:
Scanner sc = new Scanner(System.in);
示例具体用法:
package step; import java.util.Scanner; // 导包 public class SC { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 创建Scanner对象sc byte a = sc.nextByte(); // byte型 short b = sc.nextShort(); // short型 int c = sc.nextInt(); // int型 long d = sc.nextLong(); // long型 float e = sc.nextFloat(); // float型 double f = sc.nextDouble(); // double型 // Java中没有sc.nextChar(),但可以用接收字符串第一个字符的方法来接收单个字符 char g = sc.next().charAt(0); // char型 String h = sc.next(); // String型 // 输出 System.out.println(a + " " + b + " " + c + " " + d + " " + e + " " + f + " " + g + " " + h); } }
输入: 1 1 1 1 1 1 1 1 输出: 1 1 1 1 1.0 1.0 1 1
除以上使用方法外,还有常用的nextLine()
nextLine和next都可以用来接收String字符串,但是二者又存在区别:
(1)next()不接收空格,当一串字符以空格开头时,next会“自动过滤”掉开头的空格,接收到有效字符串后遇到空格或者换行都会结束字符串的接收
(2)nextLine()可以接收空格,空格并不会结束读入
next()和nextLine()示例如下:
package step;
import java.util.Scanner;
// next()
public class SC {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String next_test = sc.next();
System.out.println(next_test);
}
}
// 输入、输出如下:(为方便观察,空格用*代替)
输入:***i***j***
输出:i
package step;
import java.util.Scanner;
// nextLine()
public class SC {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String nextLine_test = sc.nextLine();
System.out.println(nextLine_test);
}
}
// 输入、输出如下:(为方便观察,空格用*代替)
输入:***i***j***
输出:***i***j***