首页 > 其他分享 >Scanner

Scanner

时间:2024-08-30 23:03:14浏览次数:11  
标签:Scanner System sc println 输入 out

Java 用 Scanner 类接受键盘输入。

步骤:

  1. 导入该类所在的包(要使用一个类的话就必须先导入该类所在的包)

  2. 创建该类的对象

  3. 调用里面的功能

Scanner 有两套系统。

第一套系统:

nextInt();
nextDouble();
next();
// 等等...

第二套系统:

nextLine();  // 接收一个字符串

程序示例:

import java.util.Scanner;  // 导包

public class Input {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 只有 sc 是变量名,只有 sc 可以改变,其他的都不允许改变。
        System.out.print("请输入一个用户的名字: ");
        String name = sc.next(); // 接收一个字符串
        System.out.print("请输入用户的年龄: ");
        int age = sc.nextInt(); // 接收一个整数
        System.out.print("请输入用户的薪水: ");
        double salary = sc.nextDouble(); // 接收一个double数据
        System.out.println("用户信息如下:");
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        System.out.println("薪水: " + salary);
    }
}

执行结果:

请输入一个用户的名字: 小章
请输入用户的年龄: 20
请输入用户的薪水: 20000
用户信息如下:
姓名: 小章
年龄: 20
薪水: 20000.0

第一套系统,遇到空白停止接收,剩余输入存在于缓冲中,等待下一次读入。

程序示例:

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("enter some words: ");
        String s = sc.next();
        System.out.println(s);
    }
}

执行结果:

enter some words: xiao cheng
xiao

程序示例:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int num1 = sc.nextInt();
        System.out.println(num1);
        System.out.println("请输入第二个整数:");
        int num2 = sc.nextInt();
        System.out.println(num2);
    }
}

执行结果:

请输入第一个整数:
123 456
123
请输入第二个整数:
456

练习:

import java.util.Scanner;

public class Input {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a, b;
        System.out.print("输入一个整数:");
        a = sc.nextInt();
        System.out.print("输入另一个整数:");
        b = sc.nextInt();
        System.out.println("两个整数的和为 " + (a + b));
    }
}

执行结果:

输入一个整数:198 
输入另一个整数:876
两个整数的和为 1074

第二套系统,可以接收一整行输入,直到遇到回车才停止接收数据。

程序示例:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个字符串:");
        String line1 = sc.nextLine();
        System.out.println(line1);
        System.out.println("请输入第二个字符串:");
        String line2 = sc.nextLine();
        System.out.println(line2);
    }
}

执行结果:

请输入第一个字符串:
hello     world
hello     world
请输入第二个字符串:
早    上     好
早    上     好

两套系统混着用的一个弊端:

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int num1 = sc.nextInt();
        System.out.println(num1);
        System.out.println("请输入一个字符串:");
        String line1 = sc.nextLine();
        System.out.println(line1);
        System.out.println("结束");
    }
}

执行结果 1:

请输入一个数字:
123
123
请输入一个字符串:

结束

line1 读取到了一个字符串,但是不会将字符串存储进去,所以 line1 是空的,因此此处的 System.out.println(line1); 相当于 System.out.println("");,也相当于 System.out.println();。因此仅仅只打印了一个换行。

执行结果 2:

请输入一个数字:
123     456
123
请输入一个字符串:
     456
结束

程序示例:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个字符串:");
        String line1 = sc.nextLine();
        System.out.print(line1);  // 是 print 而不是 println
        System.out.println("请输入第二个字符串:");
        String line2 = sc.nextLine();
        System.out.println(line2);
    }
}

执行结果:

请输入第一个字符串:
hello   world
hello   world请输入第二个字符串:
   你    好
   你    好

由此可见,nextLine() 不会把换行符存储在字符串中。nextLine() 可以将换行符从缓冲区中读取走且不放到字符串中,这样换行符既不在缓冲区,也不在换行符中,相当于丢弃了。但是 Scanner 的第一套用法是把所有输入中除了读取到的东西之外的东西全部放到缓冲区中等待下次读取。在第一套系统中,比如输入 123 456,但是会带着一个回车,然后只读取了 123,就剩下 三个空格加数字 456 再加一个回车在内存中。如果输入的是 123,那么读取走 123 放到对应的变量中,剩余一个换行符留在缓冲区中。第二套系统不会把换行符读进变量,不会把换行符保存在变量中,也不会把换行符留在缓冲区等待下一次读取。

标签:Scanner,System,sc,println,输入,out
From: https://www.cnblogs.com/Chengkai730/p/18389653

相关文章

  • Java的输入 Scanner
    Java的流程控制Scanner对象获取用户的输入java.uril.ScannerScanners=newScanner(System.in);Scanner类的next()和nextLine()方法获得输入的字符串,在读取前可用hasNext()个hasNextLine()判断是否还有输入数据Scannersc=newScanner(System.in);System.out......
  • Scanner的进阶使用——基础计算
    通过Scanner,可以将我们输入的数字进行计算从而反映出和以及平均数1.定义两个变量,分别是输入的整数以及总数的和2.建立一个扫描器3.使用while关键字进行循环,在符合条件下(输入的是数字)可以一直进行计算过程4.设置电脑接收数据5.设置我们输入的次数以及数字的总和6.输出......
  • Scanner的进阶使用——数字的输入
    1.用Scanner输入数字(整数和小数)1.定义一个整数变量2.建立扫描器3.使用if4.建立电脑接收数据5.设置else(那么)语法6.关闭Scanner......
  • java流程控制:用户交互Scanner
    1.首先输入newScanner然后Alt+回车建立一个扫描器2.选择使用next方式或者nextLine方式进行接收3.使用if判断用户是否输入字符串,有hasNext和hasNextLine两种4.定义一个变量为next或nextLine方式5.输出该方式6.关闭IO类,防止占用资源next和nextLine方式的区别next......
  • Scanner类、String类和StringBuffer类的相关使用
     一、Scanner:主要用于键盘录入的  构造方法:    Scanner(InputStreamsource)构造一个新的Scanner,产生从指定输入流扫描的值。 1、next()和nextLine()区别: Stringline=sc.next();//不会接收特殊字符,比如空格回车这样的符号 Stringline=sc.nex......
  • Java小白入门到实战应用教程-Scanner类及IO流讲解
    Java小白入门到实战应用教程-Scanner类及IO流讲解Scanner类我们前面写的很多例子都是程序独自执行的,但是我们做编程写代码的目的是要实现能人和代码去交互的。现在我们就来了解一个知识点,去实现最简单的人和程序的交互。在java中通过Scanner类来获取用户在控制台的输入......
  • Advanced IP Scanner - 网络扫描工具介绍
    AdvancedIPScanner是一款免费、快速且用户友好的网络扫描工具。它能够帮助用户扫描局域网(LAN)中的所有设备,提供详细的设备信息,包括IP地址、MAC地址、设备名称和厂商信息。该工具对IT管理员和普通用户都非常有用,特别是在需要监控和管理本地网络设备时。主要功能快速扫......
  • java流程控制之用户交互Scanner
    java提供了这样一个工具类来实现程序和人的交互,"java.util.Scanner"是java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNe......
  • MapperScannerConfigurer中获取applicayion.yml配置,进行动态加载BasePackage
     由于在MapperScannerConfigurer的bean优先于@value,导致@value取出来的时候都是null,所以只能使用Environment来获取值importorg.mybatis.spring.mapper.MapperScannerConfigurer;importorg.springframework.beans.factory.annotation.Value;importorg.springframework......
  • Scanner
    在Java中,nextInt()是Scanner类的一个方法,用于读取用户输入的下一个整数。以下是nextInt()方法的一些关键点和使用示例:语法intnextInt()这个方法没有参数,返回一个int类型的值。功能从Scanner对象的输入源读取下一个整数。读取到的整数将被解析并作为int类型返......