Scanner中的一些方法

1.sc.nextInt()

nextInt()会跳过任何空白字符比如(空格和换行符,直到没有整数)

比如输入  45 4  4324

                3423 5435

1) 如果只读一个整数的话,在读取完第一个整数45后,光标会跳过所有空白字符,指向下一个非空白字符

2) 当输入是abc123这样子的话,会直接抛出异常

3)当只有一个整数时, 如果最后一个是换行符(一般我们输入完整数以后按entre) 会指向换行符

(做题的时候要注意,需要使用sc.nextLine() 把这个换行符消耗掉)

2.sc.nextLine()

1) 会读取换行符以前的所有字符包括空格,作为一个字符串返回

2) 但是如果直接输入一个换行符会返回一个空字符串

3) 如果是abcd4534这样子的字符串,他会接受这个字符串.其中并不包括换行符,

4) 换行符只是标志行的结束并不会包含在返回的字符串里面5) 光标会移动到下一行,但是不同操作系统细节上会有差别,原则上贯标会在下一行的开头

3.sc.next();

1) 从输入中读取一个单词,不包括(换行符与空格),会读取遇到的第一个分隔符后面的内容(空格、制表符、换行符之类的)

也会跳过空格和换行符

2) 光标会在读取完的单词的后面(也就是第一个分隔符比如空格)

3) 可以配合sc.nextLine()清除尾行的换行符

4) 返回值是字符串(不是字符char)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入一句话(含多个单词):");
        
        // 读取第一个单词
        String word1 = sc.next();
        
        // 读取第二个单词
        String word2 = sc.next();
        
        System.out.println("前两个单词是:" + word1 + " " + word2);
        
        // 读取剩余的部分作为新的一行
        String remainingLine = sc.nextLine();
        
        System.out.println("剩余的内容是:" + remainingLine);
        
        sc.close();
    }
}

 输入Java programming is interesting.

会输出

4.sc.nextDouble();

1) 会跳过(空格和换行符等等),找到符合double的字符串会自动解析成double类型,但是如果遇到abc这样的就会抛出异常了

2) 读取到一个正确的double值光标会指向有效值的后一个位置

(与nextInt()差不多可以类比)

5.sc.hasNext();

1) 会跳过所有空白符(空格、制表符、换行符)

2) 当只包含换行符和空格的时候,他会返回一个false不会读取

(hasNextInt()之类同理)

输入案例

输出案例

 

6.sc.haNextLine();

1) 逐行读取直到读到末尾

2) 会检测空行,读取换行符和nextLine()是一样的

直接举例子

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入多行内容(包括空行,输入 Ctrl+D 或 Ctrl+Z 结束):");
        
        // 使用 hasNextLine() 检测每一行是否存在
        while (sc.hasNextLine()) {
            String line = sc.nextLine();
            
            if (line.isEmpty()) {
                System.out.println("这是一个空行!");
            } else {
                System.out.println("你输入的是:" + line);
            }
        }
        
        sc.close();
        System.out.println("输入结束,没有更多行可读取。");
    }
}

输入用例

输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值