Java Scanner接收输入数据

本文介绍了如何在Java中使用Scanner类从控制台获取用户输入。通过创建Scanner对象并调用nextInt()和nextDouble()方法,可以方便地读取整数和浮点数。示例代码展示了如何接收和打印用户的命令以及年龄和分数等数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scanner

Scanner

JAVA把很多基础东西都封装起来了,我们今天就讲一个非常基础的接收小工具(Scanner)

Scanner接收用户输入的数据:共3步

  • 在package下:

    import java.util.Scanner; //import一个封装
    
  • 在main中:

    Scanner scan = new Scanner(System.in); //2.新建了一个变量scan等于新建的封装
    
  • 在第2步下面:

    System.out.println("请输入年龄:");
    int age = scan.nextInt(); //用扫描仪扫描用户输入的整数
    System.out.println("请输入商品价格:");
    double price = scan.nextDouble(); //用扫描仪扫描用户输入的小数
    

写2个例子:

Scanner scan = new Scanner(System.in);
System.out.println("接收用户输入的命令");
int command = scan.nextInt();
System.out.println("输出用户的命令"+command);
System.out.println("接收用户输入的命令");
String second_Command = scan.next();
System.out.println("输出用户的命令"+second_Command);
Scanner scan=new Scanner(System.in);
System.out.println("输入年龄:");
int age = scan.nextInt();
System.out.println("输入分数:");
double score = scan.nextDouble();
System.out.println("用户的年龄是"+age+"用户的分数是:"+score);
### Java 中使用 `Scanner` 处理换行输入Java 中,`Scanner` 类提供了多种方法来处理不同类型的输入。对于换行符的处理,通常可以利用特定的方法实现单行或多行输入的需求。 #### 单行输入 当需要读取一行完整的输入时,推荐使用 `nextLine()` 方法。此方法会获取当前行中的剩余部分并将其作为一个字符串返回[^1]: ```java import java.util.Scanner; public class SingleLineInput { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一行文字:"); String input = sc.nextLine(); System.out.println("您输入的内容是:" + input); } } ``` #### 多行连续输入直到遇到指定结束标记 如果希望持续接收用户的多行输入直至遇见某个特殊字符或命令,则可以在循环内调用 `nextLine()` 并设置退出条件: ```java import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class MultiLineInputUntilStopCommand { private static final String STOP_COMMAND = "exit"; public static void main(String[] args) { List<String> lines = new ArrayList<>(); Scanner sc = new Scanner(System.in); System.out.println("请输入多行文本(键入 'exit' 结束):"); while (sc.hasNextLine()) { String line = sc.nextLine(); if (line.equals(STOP_COMMAND)) break; lines.add(line); } System.out.println("\n已接收到以下内容:"); for (String line : lines) { System.out.println("- " + line); } } } ``` #### 解决 next() 和 nextLine() 的冲突问题 有时可能会发现先用了 `nextInt()` 或其他类似的函数后再尝试通过 `nextLine()` 获取下一行的数据会出现跳过的情况。这是因为前面的方法不会消耗掉最后面的那个换行符,所以后续的第一个 `nextLine()` 实际上只得到了这个空白行。为了避免这种情况发生,建议每次转换输入模式前都加上一个额外的 `nextLine()` 来清除缓冲区内的残留换行符[^3]。 ```java import java.util.Scanner; public class FixNextAndNextLineConflict { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入年龄: "); int age = sc.nextInt(); sc.nextLine(); // 清除换行符 System.out.print("请继续输入姓名: "); String name = sc.nextLine(); System.out.printf("您的名字叫 %s, 今年%d岁%n", name, age); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值