Java控制台输入【Scanner】

Java控制台输入

整理于2020年2月16日

Java控制台输入【Scanner】

步骤

  1. 创建Scanner对象,接收从控制台输入
    Scanner input =  new Scanner(System.in);
    
  2. 接收String类型或int类型
    String str = input.next();
    int n = input.nextInt();
    
    

在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。

Scanner的next()方法用以取得用户输入的字符串;

nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。

其实next()与nextLine()区别很明确:

  1. next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。

  2. 使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。

例子:

(1) 输入一个字符串或数
Scanner input = new Scanner(System.in);
String str = input.next();
System.out.print(str);
(2) 连续输入多行数字,以空行结束
Scanner scanner = new Scanner(System.in);
String nextLine = scanner.nextLine();
int sum = 0;
 
while (nextLine != null && !nextLine.equals("")) {
    sum += Integer.parseInt(nextLine);
    System.out.println(sum);
    nextLine = scanner.nextLine();
}
 
System.out.println("end of input integer");
(3) 连续输入多行字符串,以空行结束
// 注:trim用于去除字符串两端Unicode编码小于等于32(\u0020)的所有字符;
// 还可使用trim()的重载方法String.Trim(Char[])自定义需去除的符号。
StringBuilder stringbuilder = new StringBuilder();
Scanner scanner = new Scanner(System.in);
while(true){
    String text = scanner.nextLine().trim();
    if ("".equals(text)){
        break;
    }
    stringbuilder.append(text);
}
System.out.println(stringbuilder.toString());
(4) 输入多个数值,以空格分开
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] numstr = str.split(" ");
int[] nums = new int[numstr.length];
for(int i = 0; i < numstr.length; i ++) {
    nums[i] = Integer.parseInt(numstr[i]);
}
for(int n: nums) {
    System.out.println(n);
}
System.out.println("end of input int in a line");
(5) 输入
Scanner in = new Scanner(System.in);
while(in.hasNext()){
    String str = in.nextLine();
    System.out.println(str);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章