String arg = input.nextLine();为什么不执行

2023-11-05

String a = in.nextLine();和String a = in.next();的区别

当发现String a = in.nextLine();不能按照自己的要求执行时,可以换为String a = in.next();执行。
nextline读取到的是换行符(ENTER)之前的所有字符,可以得到所有的字符,包括在任意位置的空格,一直到ENTER截止,并且最终消除ENTER字符
而Line字符只在读取到第一个字符时才开始读取之后字符,当遇到空格或者换行符,就是任何有间隙的符号,就会停止读取。然后保存到虚拟机当中。

在下一次执行nextline时就读取剩下的字符
(因为nextline读取把回车键之前的读取,然后消除回车键字符,但是next读取字符后,不会消除回车键字符)

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        //读取nextline的字符读取回车前的所有字符,并且消除全部字符
        System.out.print("输入nextline1字符串:");
        String st1 = input.nextLine();
        System.out.println("nextline1字符串为" + st1);

        //读取next中的字符,只从第一个不是空格的字符开始读取到再次出现空格结束
        // 并且清除第一个停止输入前的所有元素
        System.out.print("输入next1字符串:");
        String st2 = input.next();
        System.out.println("next1字符串为" + st2);

        //验证nextline是否还能接受到用户要输入的数据
        System.out.print("输入nextline2的字符串:");
        String st3 = input.nextLine();
        //这里输入之前还保留在回车键前的所有数据,并且清除所有的元素和回合键字符
        System.out.println("nextline2的字符串为" + st3);

        //到这一步nextline才能接受来自用户要输入的信息
        System.out.print("输入nextline3的字符串:");
        String st4 = input.nextLine();
        System.out.println("nextline3的字符串为" + st4);

        //next会输出空格前的元素,但是不会清除掉这些。这里为了验证这一点
        System.out.print("输入next2的字符:");
        String st5 = input.next();
        System.out.println("next2的字符为" + st5);

        //验证出这里的nextline不呢正常输入
        System.out.print("输入nextline4的字符:");
        String st6 = input.nextLine();
        System.out.println("nextline4的字符为:" + st6);

        //到这里才能正常输入
        System.out.print("输入nextline5的字符");
        String st7 = input.nextLine();
        System.out.println("nextline5的字符为:" + st7);
    }
}

运行结果如下:
在这里插入图片描述
当然,next与nextInt()、nextDouble()、nextFloat()一样,读取一样,会清除掉读取到的元素,但是不会清除回车键。当它们之间互相运用时,没有什么太大影响,但是当遇到nextLine时就会遇到影响,在上面代码也有演示
解决办法,就是在要用到nextLine时,在之前载打一个nextLine是为了读到清除掉之前存在的回车键字符,使得下一个nextLine可以正常运用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String arg = input.nextLine();为什么不执行 的相关文章

  • SpringBoot 2 元素未绑定

    我的 Spring Boot 应用程序有一个文件 application yml 该应用程序不愿意运行 根据日志 元素 simulator geo b12 simulator geo b13 simulator geo b21 simula
  • LoaderManager 不接受“这个”

    好吧 我投降 我想不明白 我正在学习 Udacity 的 Android 基础知识课程 需要了解如何使用加载器加载数据 但是 当我使用以下行时 this 以红色突出显示并显示以下错误 Wrong 3rd argument type Foun
  • Java 的 RSA 算法库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想为我的应用程序提供基于 RSA 算法的简单许可机制 有免费的 RSA 库吗 只需使用javax crypto and java sec
  • 是否可以同时读取和写入 java.net.Socket?

    是否可以同时从套接字读取和写入 我有一个连续读取套接字的线程 由于只有一个线程正在从套接字读取数据 因此读取操作是线程安全的 现在我有很多线程 比如100 写入套接字 因此 很明显 我必须通过这样做来使写操作线程安全 package com
  • 通过 Java Spring 构建 sitemap.xml [重复]

    这个问题在这里已经有答案了 我正在通过 Spring MVC 构建 sitemap xml XmlRootElement name urlset public class XmlUrlSet XmlElements XmlElement n
  • Spring 文件上传 - 获取预期的 MultipartHttpServletRequest:是否配置了 MultipartResolver?错误

    我正在尝试使用以下方法将多个文件上传功能合并到我的 Angular Web 应用程序中角度文件上传 https github com nervgh angular file upload 目前 前端功能可以正常工作 但每次上传尝试都会抛出一
  • 什么 RoundingMode 常量 100% 与 Math.round 一样工作?

    我的意思是有没有舍入模式 https docs oracle com javase 8 docs api java math RoundingMode html常数准确地描述了什么Math round arg 做 据我所知 Math rou
  • 解析器解析 SQL 查询并返回 Java 中的列名和相应的表名 [重复]

    这个问题在这里已经有答案了 可能的重复 Java 的 SQL 解析器库 https stackoverflow com questions 660609 sql parser library for java 我需要一个解析器 它应该以以下
  • String.split() 的 ArrayIndexOutOfBoundsException

    这是从文件中读取输入的代码 该文件包含表单中的学生详细信息roll name age street city zipcode 其中很少有值可以null even 对于以下代码 我得到java lang ArrayIndexOutOfBoun
  • 在总是抛出方法之后如何检测死代码?

    考虑以下代码 Test public void testDeadCode letsThrow System out println will never be reached private final void letsThrow thr
  • 使用 Netbeans 导出 JAR

    如何使用Netbeans将java项目导出到JAR 我找不到像 Eclipse 那样的选项 您需要启用该选项 Project Properties gt Build gt Packaging gt Build JAR after compi
  • 如何从c调用Java函数

    我被这个问题困扰了 我需要从 c c 调用 Java 函数 在示例和教程中 我只看到一个java应用程序调用一个c方法 并在同一个方法中调用另一个java方法 但我想做的是从代码的任何部分调用java方法 这就是我所拥有的 static J
  • 在使用 Selenium 和 java 时在网格中应用过滤器后无法选择第一行[棘手的情况]

    我遇到了这种奇怪的情况 找了好久都没有成功 请问这是怎么回事 让我给你解释一下 我正在尝试在网页中创建自动化 我必须输入 动态表中的特定值以及执行 ENTER 事件后 需要选择显示的第一行 运行我的代码后 我得到了这个 但显示的行未被选择
  • 如何将多种语言设置放入单个 .clang-format 文件中

    我想为 java javascript 和 c 创建一个 clang 格式 我知道如何转储单一语言的示例配置 但不知道如何合并这 3 个配置文件 有关如何将多种语言配置放入单个文件中的示例 BasedOnStyle LLVM IndentW
  • Java:getInstance 与静态

    目的是什么getInstance 在Java中 在我的研究过程中我一直在读getInstance 有助于实现单例设计模式 根据我的理解 这意味着整个程序中只有一个实例 但我不能只使用静态吗 这不是静态的全部意义吗 如果我只有静态方法和字段
  • 什么是对象发布以及为什么我们需要它?

    在一次 Java 开发人员面试中 我被问到一个问题 什么是对象发布以及为什么我们需要它 我不确定我知道正确的答案 我认为对象发布是指将对象 变量 状态放入堆内存中 线程之间共享对象 变量 需要它 我对吗 如果我错了 请纠正我 我一直在搜索
  • Java ReentrantReadWriteLocks - 如何在读锁中安全地获取写锁?

    我现在在我的代码中使用可重入读写锁 http java sun com javase 6 docs api java util concurrent locks ReentrantReadWriteLock html同步对树状结构的访问 这
  • 在调用超类型构造函数之前无法引用“X”,其中 x 是最终变量

    考虑以下 Java 类声明 public class Test private final int defaultValue 10 private int var public Test this defaultValue lt Compi
  • 单击按钮后更改 JPanel

    我正在为我的应用程序构建简单的 GUI 我有几个 JPanel 我想根据单击 JButton 执行的操作来显示它们 如何禁用一个 JPanel 并启用另一个 JPanel 几个细节 我有一个 JFrame 课程 我正在其中构建启动 gui
  • Resilience4j 重试 - 记录来自客户端的重试尝试?

    是否可以使用resilience4j在客户端记录重试尝试 也许通过某种配置或设置 目前 我正在将resilience4j与Spring boot Webflux一起使用基于注释 它运作良好 该项目很棒 当我们将服务器日志放在服务器端时 为了

随机推荐

  • 数据权限实现(Mybatis拦截器+JSqlParser)

    由于本人才疏学浅 刚刚入门 本文章是我在实现数据权限的过程中的学习体会 总体思想 一 Mybatis拦截器 参考 Mybatis中文官网 慕课网Mybatis方面视频 SQL解析 引用官网说明 MyBatis 允许你在已映射语句执行过程中的
  • 论文学习:Occlusion Robust Face Recognition Based on Mask Learning

    论文地址 Occlusion Robust Face Recognition Based on Mask Learning with Pairwise Differential Siamese Network 综述 深度卷积网络作为人脸识别
  • C++ 中关于前++和后++重载的问题

    首先我们要对基本数据类型的前 和后 有一个认知 int a a 返回 const int a 返回 int 即a的引用 那么我们在设计类方法的时候也要这样来 include
  • 如何将Android Studio卸载的干干净净?

    请先看这篇文章 本博打开方式 请详读 请详读 请详读 Cat CSDN博客 1 打开控制面板 选择 程序 在卸载或更改程序界面找到Android Studio 2 找到所有的SDK NDK文件路径 可以在Android studio软件中的
  • 澳大利亚黑客技术如何变成人类福音?

    澳大利亚黑客技术如何变成人类福音 澳大利亚科学家David Putrino 将多种科技融于一体 帮助饱受战乱的南苏丹难民装上了义肢 开发出了可网上购买的低成本虚拟现实康复设备 为全世界人民带来了福音 Putrino与他的科技惠民之路 Dav
  • 使用Moment Timezone将时间转换为目标时区的时间

    1 moment timezone moment是一个强大JavaScript 日期处理类库 但为了根据时区计算对应的时间时 一般会采用手动设置时间偏移量的方法 使用起来十分繁琐 于是就有了moment timezone JavaScrip
  • MinIO+NPS+DDNS+旧笔记本搭建私有图床

    MinIO NPS DDNS 旧笔记本搭建私有图床 前言 一篇好的博文 是需要图文并茂的 以前最好用的免费图床应该是PicGo gitee方式了 但今年 这种gitee已打击这种使用仓库作为图床做法 并且还做了防盗链处理 因此行不通了 所以
  • Java 9模块系统Jigsaw项目简介

    众所周知 Java SE 8带有三个重要的新功能 即Lambda Expressions Stream API和Date API 同样 Java SE 9具有三大功能 即Java模块系统 Jigsaw Project Java REPL M
  • vue+less 电池电量图标组件

    父组件调用
  • MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置

    MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 文章目录 MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 制作局部放大图的方法 文本箭头的便捷设置 小结 本文主要介绍如何在MATLAB中绘制局部放大图和如何便捷地设置
  • DJI Onboard-SDK-ROS-4.0.1 在妙算2-G上编译运行

    编译ROS工程前先按照DJI OSDK4 0 1在妙算2 g上编译运行文章中描述的方法将OSDK 4 0 1编译成功 Onboard SDK ROS 4 0 1 项目地址 https github com dji sdk Onboard S
  • 题目0145-端口合并

    端口合并 题目描述 有M 1 lt M lt 10 个端口组 每个端口组是长度为N 1 lt N lt 100 的整数数组 如果端口组间存在2个及以上不同端口相同 则认为这2个端口组互相关联 可以合并 第一行输入端口组个数M 再输入M行 每
  • 【山河送书第八期】:《用ChatGPT轻松玩转机器学习与深度学习》突破传统学习束缚,借助ChatGPT的神奇力量,解锁AI无限可能!

    山河送书第八期 用ChatGPT轻松玩转机器学习与深度学习 一 前言 二 关键点 三 内容简介 四 作者简介 五 购买链接 六 参与方式 七 往期赠书回顾 一 前言 随着科技的飞速发展 人工智能已经成为了当今社会最热门的话题之一 从自动驾驶
  • 相关滤波论文

    MOSSE 2010 Visual Object Tracking using Adaptive Correlation Filters PDF Minimum Output Sum of Squared Error MOSSE 是第一篇将
  • CSDN高校俱乐部全新改版,欢迎你的加入!

    Hi 同学们 CSDN高校俱乐部全新改版 真诚服务于中国大学生的学习成长和社会实践是我们的宗旨 新版高校俱乐部隆重推出三大服务体系 知识服务 开发服务 职业服务 为你的学习道路铺下坚实的基石 为你的事业搭起成功的阶梯 相信你会为自己的加入而
  • FPGA实战小项目3

    基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DD
  • cesium 如何使实体平滑更新位置

    如果需要不断更新实体位置 实现平滑过渡的效果可以借鉴该方式 两种方式实现 一是直接赋值新坐标位置 但有时会出现闪烁情况 这里推荐第二种 通过回调函数的方式更新位置 1 直接赋值方式 直接赋值方式 cesium绘制原理是先移除 然后在新位置渲
  • 论文写作资源整理

    论文写作及实验资源 文章目录 论文写作及实验资源 实验相关 数据集 样例代码 在线训练平台 写作辅助 文献管理 文档阅读 图表绘制 文档写作 降重查重 英文写作 其它工具 文献分类 文献检索 期刊下载 顶级会议 信息安全会议 计算机视觉会议
  • Vue-组件二次封装

    本次对el input进行简单封装进行演示 封装很简单 就给激活样式的边框 主要是功能 本次封装主要使用到vue自带的几个对象 attrs 获取绑定在组件上的所有属性 listeners 获取绑定在组件上的所有函数方法 slots 获取应用
  • String arg = input.nextLine();为什么不执行

    String a in nextLine 和String a in next 的区别 当发现String a in nextLine 不能按照自己的要求执行时 可以换为String a in next 执行 nextline读取到的是换行符