首页 > 编程语言 >关于java输入字符串的一些问题

关于java输入字符串的一些问题

时间:2024-08-30 15:50:14浏览次数:11  
标签:nextLine java s1 next 输入 字符串 回车

最近自学java,学到了Scanner类这块,我想着测试一下输入,遇到了个问题,我想要输入两个字符串,但是我输入一个字符串后程序就停止运行了,有点疑惑,我的代码如下

s1=scan.next();
System.out.print(s1);

s2=scan.nextLine();
System.out.print(s2);

结果就是只能输出s1,然后我就想起来这两种输入方式的区别

next() 与 nextLine() 区别

next():

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

nextLine():

    1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
    2、可以获得空白。

 输入一个字符串后我们会按回车结束,我们按的回车键也会送入键盘缓冲区作为输入的一部分只不过会被转化为换行符,而且这两种方法都不会把输入的回车给取走,也就是说输入s1的时候输入字符串+回车,next()仅仅是把字符串取走,回车还留在缓冲区中,这样程序接着执行到next()的时候nextLine()就会取走回车,因为nextLine()取字符串是以回车为结束标志,所以就会造成以上问题,只能输入一个有效的字符串。

要解决这个问题,只需要在第一个next后在加一个nextLine()取走进入缓冲区的回车符,这样程序执行到下一个nextLine()时就会等待我们输入下一个字符串了,如下:

s1 = scan.next();
System.out.print(s1);
scan.nextLine(); // 取走回车键
s2 = scan.nextLine();
System.out.print(s2);

需要注意的是:不能使用next()来取回车键,因为像上面说过的对输入有效字符之前遇到的空白,next() 方法会自动将其去掉,对next()来说回车键不是一个有效字符所以会自动将它去掉,然后等待用户输入下一个有效字符串。

使用nextLine()因为它以回车为结束符,遇到回车就会停止读取字符并返回回车前取到的字符串(会将回车符消耗掉),这里就是返回一个空字符。

标签:nextLine,java,s1,next,输入,字符串,回车
From: https://blog.csdn.net/weixin_74141526/article/details/141719611

相关文章

  • Java Script网页设计案例04A6PZbSPCHdMhmS
    1.JavaScript网页设计案例下面我将提供一个简单的JavaScript网页设计案例,该案例将实现一个动态的待办事项列表(TodoList)。用户可以在页面上添加新的待办事项,标记它们为已完成,以及删除它们。这个案例将使用HTML来构建页面结构,CSS来美化页面,以及JavaScript来添加动态功能。1.1HT......
  • juzige/Monitoring-System-基于Java语言的光伏监控系统
    Photovoltaic-Monitoring-System-Based-on-Java-Language基于Java语言的光伏监控系统+光伏发电系统+光伏软件系统+光伏监控系统源码+光伏发电系统源码-智电云一、介绍光伏+光伏发电预测+逆变器监控+逆变器数据采集+光伏运维+光伏电站+光伏功率预测+光伏监控系统+光伏发电系......
  • PowerShell Select-String:在字符串和文件中查找文本
    语法Select-String[-Culture<String>][-Pattern]<String[]>[-Path]<String[]>[-SimpleMatch][-CaseSensitive][-Quiet][-List][-NoEmphasis][-Include<String[]>][-Exclu......
  • Java人证合一接口原理、身份证识别、人工智能
    人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。人证合一接口,一般是指人脸与身份证识别接口的相结......
  • Java Script网页设计案例
    1.JavaScript网页设计案例下面我将提供一个简单的JavaScript网页设计案例,该案例将实现一个动态的待办事项列表(TodoList)。用户可以在页面上添加新的待办事项,标记它们为已完成,以及删除它们。这个案例将使用HTML来构建页面结构,CSS来美化页面,以及JavaScript来添加动态功能。1.1HT......
  • Java ORM 框架指南
    Java应用程序通常需要与关系型数据库交互来存储和检索数据。编写这些SQL查询不仅繁琐,还容易出错,影响开发速度和代码的可维护性。这个时候,ORM(对象关系映射)框架就显得特别重要。ORM框架能弥合Java面向对象编程和数据库之间的差距。它们允许我们使用Java对象来处理数据库中的数据,......
  • Java中的分布式一致性与共识算法
    在分布式系统中,节点之间必须就某些值达成一致。但由于网络的不可靠性、节点故障以及其他不可预测因素,实现一致性变得极为复杂。共识算法应运而生,旨在解决这一难题。本文将深入探讨两种主要的共识算法——Paxos和Raft,解释其原理,并提供Java代码示例。此外,我们还将对比它们的优缺......
  • 深入理解Java中的分布式锁实现:从理论到实践
    引言在分布式系统中,多个进程或线程可能需要访问同一份资源,这时就需要一种机制来确保资源不被同时修改,从而避免数据不一致的问题。分布式锁正是应对这种场景的重要手段。本文将详细介绍Java中的分布式锁实现原理、常见的分布式锁技术,以及具体的代码示例。目录分布式锁的基本......
  • window系统安装java(JDK)
    window系统安装java下载JDK首先我们需要下载java开发工具包JDK,下载地址:https://www.oracle.com/java/technologies/downloads/,在下载页面中根据自己的系统选择对应的版本,本文以Window64位系统为例:下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装......
  • GEE中用JavaScript计算遥感数据在两个日期中变化值的多年平均
      本文介绍在谷歌地球引擎GEE中,提取、计算某一种遥感影像产品在连续的多年中,2个不同时相的数据差值的多年平均值,并将计算得到的这一景差值的结果图像导出的方法。  首先,我们来看一下本文需要实现的需求。现在我们希望计算某一个地区中,在2013年到2020年的这8年中,第257天与249天......