JavaSE数据输入

本文介绍了JavaSE中Scanner类的使用,包括基本步骤、常用输入语句如next()和nextLine()的差异,以及在同时输入int和String型数据时可能出现的问题及解决方案。
摘要由CSDN通过智能技术生成

Scanner使用的基本步骤

  1. 导包
    import java.util.Scanner;
    导包的动作必须出现在类定义的上面

  2. 创建对象

Scanner sc = new Scanner(System.in);
  1. 接收数据
int i = sc.nextInt();

常用输入语句

代码

import java.util.Scanner;
public class InputData {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入整数");
        int a = input.nextInt();

        System.out.println("请输入小数");
        double b = input.nextDouble();

        input.nextLine();  // 接收上一个输入完成后的回车符,后面会讲

        System.out.println("请输入字符串");
        String s = input.nextLine();

        System.out.println("请输入字符");
        char i = input.next().charAt(0);

        System.out.println(a);
        System.out.println(b);
        System.out.println(s);
        System.out.println(i);

    }
}

next() 与 nextLine() 方法读取字符串

  • next()
    1. 一定要读取到有效字符后才可以结束输入。
    2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    4. next()不能得到带有空格的字符串。
  • nextLine()
    1. 以Enter为结束符,nextLine()方法返回的是输入回车之前的所有字符。
    2. 可以获得空白。

next().charAt() 读取单个字符

  • charAt()这个方法中的参数是args[]一个数组
  • charAt(n)这个方法中的参数表示取出字符串中的第n+1个字符
    charAt(0)这个方法中的参数表示取出字符串中的第1个字符

同时输入 int 型和 String 型出错

问题描述

在Java中,如果需要同时输入int和String类型时,有时候会出现错误,需要进行处理。输入整数后如果按了回车符后进入下面的程序时,回车符会把这个字符串直接顶替掉,从而出现明明写了需要输入字符串却直接被跳过的情况。

解决方案

  1. 调换输入顺序,先输入 String ,后输入 int 。
  2. int和String都采用字符串输入,将表示int的String再转换回int类型。
 Scanner input = new Scanner(System.in);
 String a = input.nextLine();
 int a2 = Integer.parseInt(a);//转换为int类型
 String b = input.nextLine();
  1. 在获取int和String之间加一句input.nextLine(),用来接收输入完 int 后的回车符。
 Scanner input = new Scanner(System.in);
 int a = input.nextInt();
 input.nextLine();//用来接收回车符
 String b=input.nextLine();
 System.out.println(a);
 System.out.println(b);
  1. 再创建一个Scanner对象,获取String的值。
 Scanner input1 = new Scanner(System.in);
 int a = input.nextInt();
 Scanner input2 = new Scanner(System.in);
 String s=input2.nextLine();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值