ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

一文通俗搞懂input.next()和input.nextLine()的区别

一文通俗搞懂input.next()和input.nextLine()的区别 input.next()和input.nextLine()都是Scanner的读取方法但读取范围不同next()读取下一个由空白字符分隔的单词。空格、换行、制表符都会作为分隔符。nextLine()读取当前行剩余的全部内容可以包含空格直到遇到换行符。eg输入Hello Java WorldString a input.next(); // 得到 Hello String b input.nextLine(); // 可能得到 Java World如果字符串不包含空格例如Ice使用next()就足够/* 输入 Ice Ice */ String str1 input.next(); String str2 input.next();如果需要读取完整的一行字符串例如Hello Java应使用nextLine()。注意调用nextInt()、next()后直接调用nextLine()nextLine()可能只读取前一个输入留下的换行符。此时通常先额外调用一次input.nextLine()清除换行再读取真正的一行。解释如下可以把Scanner的输入想象成一条字符流25\nHello Java\n其中25是数字\n是按下回车产生的换行符Hello Java是下一行内容调用int age input.nextInt();nextInt()只读取数字25不会读取后面的换行符\n。此时输入流仍然是\nHello Java\n如果马上调用String text input.nextLine();nextLine()会从当前位置读取到当前行末尾而当前位置一开始就是换行符所以它只能读到一个空字符串。因此常见写法是int age input.nextInt(); input.nextLine(); // 清除数字后面的换行符 String text input.nextLine(); // 读取真正的下一行完整示例Scanner input new Scanner(System.in); int age input.nextInt(); input.nextLine(); // 清除回车 String message input.nextLine(); System.out.println(age); System.out.println(message);输入18 Hello Java输出18 Hello Java但如果连续使用next()通常不需要额外处理因为next()会跳过前面的空白字符String first input.next(); String second input.next();核心区别是nextInt()和next()读取内容本身nextLine()读取到整行结束前两者通常不会替你消费行尾的换行符。
返回列表