我想知道是否有方法將用戶輸入作爲fixnum。我可以做類似a = gets.chomp.to_i
,但是在java中有沒有類似於Ruby的nextInt()
,還是我需要每次都做這些轉換?以fixnum作爲用戶輸入
0
A
回答
0
當您使用輸入流時,如文件或終端,您正在處理原始字節。你從不直接使用原始類型。如果你想要原始類型,你必須使用方法來理解字節。在很多情況下,「使用原始字節」與使用字符串是同義詞,因此字符串類型通常具有轉換方法以從中提取類型化數據。
Java有Scanner
類,它有一個nextInt()
方法。它用於從文本中提取Java整數。它通過解析文本並將其轉換爲請求的原始數據類型來實現,在此例中爲int
。爲了它的工作,你必須給它一個輸入源。當你將它包裝在System.in
周圍時,你會得到一個從標準輸入中提取數據的Scanner
,標準輸入通常連接到終端。
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
在Ruby中,我們可以簡單地讓字符串嘗試將自身轉換爲另一種類型。如果你想要一個整數
line = gets # reads from standard input
i = line.to_i # converts the string to an integer
字符串的to_i
方法執行非常寬鬆的轉換,並返回0,如果它無法弄清楚的數量,或者如果沒有數量與開始。它永遠不會引發異常,並且總會返回一個數字,即使沒有數字要解析。
Integer()
方法執行更嚴格的轉換。
0
首先,您的gets.chomp.to_i
工作,但不是正確的方法。我不知道你是如何得到這個想法來附加chomp
,但這在這裏沒有意義。你應該做gets.to_i
。所以,不,你不需要每次都做轉換gets.chomp.to_i
。
Ruby可以從終端輸入接收的唯一東西是一個字符串。沒有辦法從終端接收除字符串以外的任何內容。
相關問題
- 1. 停止*作爲用戶輸入輸入
- 2. 以用戶輸入
- 3. MATLAB公式作爲用戶輸入與
- 4. 如何以用戶輸入作爲參數運行.py腳本
- 5. 以用戶輸入數組
- 6. 檢查用戶輸入的三種文件名作爲輸入
- 7. 我可以使用輸入作爲輸入嗎?
- 8. 解析用戶輸入作爲用戶鍵入WinForms文本框控件
- 9. 以前的列表項作爲輸入
- 10. 以表名作爲輸入sql
- 11. AzureML:以參數作爲輸入
- 12. 將操作員作爲用戶輸入的計算器
- 13. 使用JDialog作爲輸入
- 14. Camel:jetty作爲輸入,soap作爲輸出
- 15. 將用戶輸入作爲運算符轉換爲表達式
- 16. 是否可以將用戶輸入隱藏爲「sudo」密碼輸入?
- 17. 用戶輸入
- 18. 用戶輸入
- 19. 用戶輸入
- 20. Python--要求用戶輸入某些文本作爲其輸入的一部分
- 21. 用戶輸入以創建D3餅圖
- 22. 以用戶類型捕獲輸入流
- 23. 以任何用戶輸入確認
- 24. 用戶輸入以創建階乘
- 25. 以「BR」或「BT」開始用戶輸入
- 26. 從用戶的Tkinter以輸入
- 27. 用戶輸入以SQL腳本
- 28. 以C#分隔用戶輸入號碼
- 29. 以用戶輸入的JavaScript控制檯
- 30. LUA:用戶輸入以參照表