8、Java流程控制 part1

Java流程控制 part1

Scanner对象(用户交互)

java.util.Scanner util工具包中的Scanner类来获取用户输入,Java5的新特性

  • 基本语法:
Scanner scanner = new Scanner(System.in);
  • 通过Scanner类的next() 与 nextLine() 方法获取输入字符串,读取前利用hasNext() 与hasNextLine() 判断是否还有输入的数据。
// next()

package com.scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        // 创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方法接收:");
        // 判断用户有没有输入字符串
        if (scanner.hasNext()) {
            // 使用next方法接收
            String str = scanner.next();
            System.out.println("输入的内容为:"+str);
        }
        // !!!!!重点,凡是属于IO流的类用完都需要关闭,否则会一直占用资源
        scanner.close();
    }
}

// nextLine()
package com.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        if (scanner.hasNextLine()) {
            String str = scanner.nextLine();
            System.out.println(str);
        }
        scanner.close();
    }
}

// 可以不用if判断
package com.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        String str = scanner.nextLine();
        System.out.println(str);
        
        scanner.close();
    }
}

//同理,next() 也是如此

next()和nextLine()二者区别

  • next()
    • 有效字符前的空格,next()方法自动将其去掉
    • 输入有效字符后,才能将后面的空格作为结束符
    • 不能得到带有空格的字符
  • nextLine()
    • 以enter作为结束符
    • 可以获得空白

Scanner进阶使用

nextInt() hasNextInt()

nextDouble() hasNextDouble()

可以判断不同类型的输入

上一篇:模板【树上合并式启发】


下一篇:《算法竞赛进阶指南》扫题 - part1