我想知道是否有方法將用戶輸入作爲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. 以pthread id作爲輸入
- 4. 作爲用戶輸入存儲符號
- 5. 作爲用戶輸入Shopify價格
- 6. MATLAB公式作爲用戶輸入與
- 7. 如何以用戶輸入作爲參數運行.py腳本
- 8. 以八進制UTF-8字節作爲用戶輸入Python 3.5
- 9. '包含'以TextBox作爲用戶輸入的篩選器
- 10. 以用戶輸入數組
- 11. 以在用戶輸入
- 12. 以多用戶輸入
- 13. 阻止用戶輸入0作爲輸入
- 14. 當用戶作者消息將輸入轉換爲img輸入
- 15. 如何防止用戶輸入零作爲輸入?
- 16. 檢查用戶輸入的三種文件名作爲輸入
- 17. 我可以使用輸入作爲輸入嗎?
- 18. 如果用戶輸入一個字母作爲輸入,重新輸入年齡
- 19. 作爲輸入
- 20. 用python製作一個盒子,用戶可以控制輸入
- 21. Python:以嵌套列表作爲輸入?
- 22. 以前的列表項作爲輸入
- 23. 以表名作爲輸入sql
- 24. AzureML:以參數作爲輸入
- 25. 解析用戶輸入作爲用戶鍵入WinForms文本框控件
- 26. 將操作員作爲用戶輸入的計算器
- 27. 使用DIV作爲輸入
- 28. 使用JDialog作爲輸入
- 29. Camel:jetty作爲輸入,soap作爲輸出
- 30. 將用戶輸入作爲運算符轉換爲表達式