java中nextLine(),读取换行符的解决
生活随笔
收集整理的這篇文章主要介紹了
java中nextLine(),读取换行符的解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:問題描述
當輸入完第一值后,就未能輸入后來的字符串
package com.wyj.two;import java.util.Scanner;public class text {public static void main(String[] args) {Scanner in = new Scanner(System.in);int temp = in.nextInt();System.out.println(temp);String str = in.nextLine();System.out.println(str);} }二:問題解析
經過從網上查詢資料,了解到Scanner是一個掃描器,它掃描數據都是去內存中一塊緩沖區中進行掃描并讀入數據的,而我們在控制臺中輸入的數據也都是被先存入緩沖區中等待掃描器的掃描讀取。這個掃描器在掃描過程中判斷停止的依據就是“空白符”,空格、回車等都算作是空白符。
next()與nextLine()的區別
next()方法在讀取內容時,會過濾掉有效字符前面的無效字符,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next()方法會自動將其過濾掉;只有在讀取到有效字符之后,next()方法才將其后的空格鍵、Tab鍵或Enter鍵等視為結束符;所以next()方法不能得到帶空格的字符串。
nextLine()方法字面上有掃描一整行的意思,它的結束符只能是Enter鍵,即nextLine()方法返回的是Enter鍵之前沒有被讀取的所有字符,它是可以得到帶空格的字符串的。
next()方法在掃描到空白符的時候會將前面的數據讀取走,但會丟下空白符“\r”在緩沖區中
nextLine()方法在掃描的時候會將掃描到的空白符一同清理掉
三:問題解決
1.可以在后面加一個 nextLine();專門讀取無效字符
2.或者就別用nextLine()輸入, 直接用next();
總結
以上是生活随笔為你收集整理的java中nextLine(),读取换行符的解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 早报:华为鸿蒙OS 4最新升级进展公布
- 下一篇: 柯达推出复古 Super 8 胶片摄影机