java 的交互 scanner输入和一些说明 hasNext原理等

本节说明java的交互scanner输入是怎么用的 然后是一些进阶用法

比如说python的输入 对吧 input 

比如常写的 a = list(map(int, input.split(‘ ’))) // 意思就是把输入按照空格隔开 然后把int函数映射到每个输入上 一般用在那个竞赛题要自己输入的地方 这样的 

public class ScannerUse {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入: ");

        if (scanner.hasNext()){
            System.out.println("输入了 next:"+scanner.next());
        }

        // 用完关闭
        scanner.close();



    }
}

其实我们可以看一下他的源码:

按ctrl就可以查看

比如

这里返回的是一个布尔值 所以没有写结果等于true还是false再输出

------------------------------------------

下面看一下next和nextLine的区别

这两个的输出是不一样的 比如同样输出hello world 即中间有个空格

可以看到 next函数是只输出了hello 而 nextLine函数是完整的输出了

这是因为

主要在于nextLine返回的是回车键之前所有的字符 关闭是一个好习惯 比如sql啥的 我本科开发项目 有项目就没有这个 然后运行久了 内存老溢出

比如上面这个代码 假设输入10.1 那么输出为

其实应该感到奇怪 就是hasNextxxxx这种是怎么判断的对吧

比如下面这个代码

那么他的输出是什么呢

首先如果输入了10.1 那么会输出字符串10.1 关键来了 程序还会让你继续输入 这是为什么呢?很奇怪是吧

再比如这段代码 会怎么输出

控制台会等你输入完再输出 请输入字样 这是因为

scanner 可以理解为 等你输入完 hasNext也会获得一个输入值 只不过 这个值是布尔值 输入完后 scanner标识符会向后移 然后输出结果

比如上面这个 假设在控制台输入一个值 那么会输出flag为true 然后直接输出值

再比如这个

那么在控制台输入值 会直接得到一个字符串值

下一节讲java的一些控制结构 其实主要问题是 还是要看下这个方法的源码 是比较好的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值