1. 程式人生 > >Java中Scanner物件中hasNext()與next()方法

Java中Scanner物件中hasNext()與next()方法

轉載自:

相信很多像我一樣在剛剛接觸Java的時候都有遇到這樣的問題:

我們可能希望的是:先輸出“請輸入:”然後我們就可以在控制檯輸入一個字串或數字。

但是,事實卻是:控制檯要我們先輸入,輸入後才顯示“請輸入:”。

這是怎麼回事?

原因:

首先,sc.hasNext()和sc.next()都可以用來輸入

 

 

我們,可以發現,hasNext()返回的是boolean型別而next()返回的是你輸入的那個值,

sc.hasNext()可以理解為把我們輸入的值存到了sc當中而sc.next()可以理解為從sc中取值,取值後將識別符號後移(可以理解為:取完值後這個值就不在了),如果sc中沒有值了,它也會要求輸入一個值(前面說了它們兩都可以輸入)。

然後我們再來分析一下開始的那段程式:

首先,進入while迴圈,sc.hasNext()就要求我們給他輸入一個值,所以就不會輸出“請輸入:”,當我們輸完後,String str = sc.next()中,會從sc中取出我們輸入的那個值返回到str中,如果沒有值,它就會被阻塞要求我們給它一個值。

相關推薦

JavaScanner物件hasNext()next()方法

轉載自: 相信很多像我一樣在剛剛接觸Java的時候都有遇到這樣的問題: 我們可能希望的是:先輸出“請輸入:”然後我們就可以在控制檯輸入一個字串或數字。 但是,事實卻是:控制檯要我們先輸入,輸入後才顯示“請輸入:”。 這是怎麼回事? 原因: 首先,s

JavaScanner物件hasNext()next()方法淺析

相信很多像我一樣在剛剛接觸Java的時候都有遇到這樣的問題: 我們可能希望的是:先輸出“請輸入:”然後我們就可以在控制檯輸入一個字串或數字。 但是,事實卻是:控制檯要我們先輸入,輸入後才顯示“請輸入:”。 這是怎麼回事? 原因: 首先,sc.hasNext(

JavahasNext()next()的區別,hasNextInt()nextInt()的區別,hasNextDouble()nextDouble()的區別

轉載自:https://blog.csdn.net/weixin_37770552/article/details/77431961 還有補充:https://zhidao.baidu.com/question/198579166802848525.html java.util.Scanne

JavaScannernext()方法nextLine()方法的區別

在學習Java過程中,一次偶然機會,發現在Scanner類中,有兩種接收控制檯輸入字串的方法:next()和nextLine(),那麼兩者有什麼不同之處呢?下面是我自己的一些總結。 一、JDK API文件中對這兩種方法的定義:      public String next

Freemaker判斷物件為空 ??!的區別

UserEntity: public class UserEntity{ /** * 使用者ID */ private String userId; /** * 賬號 */ private String account;

java判斷物件屬性值是否為空

最近遇到後臺接收值的時候,需要對接收物件進行非空校驗,第一時間想到的就是寫一堆的if判斷,但是仔細想了想,如果欄位的屬性太多,需要寫大量的if判斷,並且方法也不能夠重用,所以,就搜尋了相關資料看看有沒有通用的方法來實現,現將方法記錄如下: 思路是,使用java中的反射機制

Java判斷物件是否為空的方法

首先來看一下工具StringUtils的判斷方法: 一種是org.apache.commons.lang3包下的; 另一種是org.springframework.util包下的。這兩種StringUtils工具類判斷物件是否為空是有差距的: Str

javaScanner的close()方法的作用

import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.print

Qt 多執行緒程式設計物件執行緒函式執行執行緒

    為徹底搞清原因並解決問題,在查閱大量資料和Qt文件之後,理清了其中的機制,也對多執行緒程式設計中的QObject物件建立以及connect執行有更清楚的認識:     1. 一個物件的執行緒就是建立該物件時的執行緒,而不論該物件的定義是儲存在那個執行緒中;     2. QObject的connec

Java)面向物件 訪問控制符

1. private 表示私有,只有自己類能訪問2. default表示沒有修飾符修飾,只有同一個包的類能訪問3. protected表示可以被同一個包的類以及其他包中的子類訪問4. public表示可

ShiroSubject物件的建立繫結流程分析

我們在平常使用Shrio進行身份認證時,經常通過獲取Subject 物件中儲存的Session、Principal等資訊,來獲取認證使用者的資訊,也就是說Shiro會把認證後的使用者資訊儲存在Subject 中供程式使用 public static Subject getSubject()

HTML5 | Canvas變量作用域setInterval()方法的影響

通過 value utf 出現 close span arc shadow cli Demo - 隨機繪制圓環 實現思路: 將一個圓環的繪制分成100份,setInterval()方法定義每隔時間n繪制一段新的,每份的開始路徑都是上一次的結束路徑,實現步進繪制。 通

Sublime text 3 Package Control 的安裝使用方法

src 一個 set con 編輯 setting text mage 基於 Package Control插件本身是一個為了方便管理插件的插件,在Sublime text 3中,Package Control 的安裝方法一開始出來的方法是要先安裝Git, 再輸入代碼來安裝

Python的對象行為特殊方法(一)對象的創建銷毀

連接 繼承 並不會 參數 asa rac 方式 垃圾收集 shell Python中類調用__new__()類方法來創建實例,調用__init__()方法來初始化對象,對象的銷毀則調用__del__()方法。 __new__()方法第一個參數為類cls,通常返回cls的一個

JSevent物件的常見屬性

在事件函式中,其實是可以寫引數的,寫法: <script> var btn = document.getElementById("btn"); btn.onclick = function (event) { var e = event ||

js Date物件方法詳解

          var myDate = new Date();        myDate.getFullYear()  //獲取完整

Java SE面向物件--06.類物件、封裝、構造方法

學習目標: 面向物件 類與物件 三大特徵——封裝 構造方法 一、面向物件 1.1 引入面向物件(瞭解) 在開發的過程中,我們經常會遇到在多個程式中使用到同一個功能的情況。如下需求: 需求:定義類,在類中有定義功能對陣列求和的需求 clas

AndroidSharedPreferences.Editor的apply()commit()方法

寫在前面   今天在寫 LifeTips App 時,涉及到儲存使用者調節的螢幕亮度時,使用了 SharedPreferences,及 SharedPreferences.Editor,結果 Android Studio 出現了”黃色的感嘆號“(本人有強迫症,不喜歡任何 warnin

JavaScriptArray物件join()方法的例子

//join()方法用於把陣列中的所有元素放入一個字串 //其中元素是通過指定的分隔符進行分割 var arr = new Array(3); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thom

【JavaScript】列舉物件的屬性

有時候,拿到別人的程式碼,我們並不知道某一個物件擁有哪些屬性和屬性值,這個時候別慌,我們可以通過for   in  語句來獲取物件裡的屬性和屬性值,(最底部有原始碼,可複製) 語法:for(變數名  in  物件名){     (迴