Scanner与final

251 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天

Scanner

初识scanner

scanner是一个基于正则表达式的文本扫描器。

scanner主要提供了两个方法来扫描输入:

->hasNextXxx():判断是否含有下一个输入项,其中Xxx可以是Int,Long等基本数据类型。 如果只是判断是否含有下一个字符的话,直接hasNext()。

->nextXxx():获取下一个输入项,相当于c语言里的scanf。

next()与nextline()的区别

next()

  1. 只有读入有效字符的时候才会开始
  2. 对于输入有效字符前的空格,会自动将其删除。
package DemoTest;
import java.util.Scanner;
public class Test3 {

        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            // 从键盘接收数据

            // next方式接收字符串
            System.out.println("next方式接收:");
            // 判断是否还有输入
            if (scan.hasNext()) {
                String str1 = scan.next();
                System.out.println("输入的数据为:" + str1);
            }
            scan.close();
        }
    }

image.png

nextline()

  1. 可以读入空格
  2. 以enter键结束
  3. nextline是读入字符的
package DemoTest;
import java.util.Scanner;
public class Test3 {

    public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            // 从键盘接收数据

            // nextLine方式接收字符串
            System.out.println("nextLine方式接收:");
            // 判断是否还有输入
            if (scan.hasNextLine()) {
                String str2 = scan.nextLine();
                System.out.println("输入的数据为:" + str2);
            }
            scan.close();
        }
    }

image.png

->useDelimiter(String pattern):括号里可以是\n,也可以是一些字符串。

Scanner只需要定义一个scanner对象就可以反复使用。

final关键词

final关键词可以修饰类,变量和方法,用于表示它修饰的类,变量,方法不可变。

final修饰变量

*当final修饰实例变量时,必须显式指定初始值,且只能在定义时实例初始化块各构造器其中的一个位置指定。

*- 当final修饰类变量时,必须显式指定初始值,且只能在定义时类初始化块其中的一个位置指定。

'那什么是类变量什么是实例变量呢,让我们来回顾一下'

成员变量即为定义在类里面的变量,分为实例变量类变量,也被称作全局变量

实例变量:实例变量也叫对象变量,即没加static 的变量;

类变量:类变量也叫静态变量,即在变量前加static 的变量;

final的宏替换

当变量满足以下条件时,该变量出现的所有地方将会被替换成变量的值:

  • 变量有final修饰
  • 声明时指定了初始值
  • 变量初始值可在编译时确定

`

final方法

final修饰方法指不允许被子类重写,避免该方法被子类破坏。

final修饰类

final修饰类以后该类不允许派生子类。