我知道這可能是一個基本問題。但我想說清楚。 如果我有一個值爲'9'的java char c,我可以通過以下操作將它轉換爲int: c - '0'? 我曾經玩這個,從來沒有問題,但有人告訴它是錯的?爲什麼?Java Char到Integer
4
A
回答
5
我不認爲這是錯誤的,你可以做到這一點。
int x = '9' - '0';
但是,如果你還希望它爲十六進制字符「A」 = 10,「B」 = 11等工作,你可以做這樣的
int x = Character.getNumericValue('9');
編輯:基於其他答案在這個崗位 Character.getNumericValue將一路真正去「Z」 = 35,所以,如果你想成爲安全使用
int x = Character.digit('9', 10); // for base 10
int x = Character.digit('9', 16); // for base 16
int x = Character.digit('B', 16); // for base 16
+1
你的意思是「9」 - 「0」 – ericbn 2014-09-24 00:52:54
5
是的,你可以。但是,我會強烈建議您使用Character.digit(char, int)
(其中int
是基數),像
char ch = '9';
int i = Character.digit(ch, 10);
System.out.printf("ch = %c, i = %d%n", ch, i);
唯一的問題(S)我看到你們的做法是,它是一個小更復雜,你應該驗證範圍
if (ch >= '0' && ch <= '9')
+1
+1指向正確的API。但是,如果可以通過其他方式建立驗證,那麼在代碼中'c'總是小數點。 – 2014-09-24 00:41:20
相關問題
- 1. C++ Integer從* char []
- 2. 轉換char INTEGER在java德比DB
- 3. char和integer的數組
- 4. Java - collections List <Map <Integer,Integer >>
- 5. Java HashMap <Integer,Integer> vs int []
- 6. 將char附加到char數組java
- 7. Java char字符到C#char literal
- 8. Integer Value to Color(JAVA)
- 9. Java Integer類和compareTo()
- 10. Java轉換爲Integer?
- 11. Integer Arraylist到JTextArea
- 12. 爲什麼char轉換爲int類型而不是char轉換爲Java中的Integer
- 13. Integer == int允許在java中
- 14. Sqlite Integer null == java int 0
- 15. Integer數組訪問 - Java
- 16. java left integer pad爲零
- 17. 擴展java Integer緩存
- 18. Java排序ArrayList <Integer>
- 19. char *到char [200]
- 20. Char到char * C++
- 21. `const char *'到`char'
- 22. Java爲什麼char = char^char與char^= char不同?
- 23. Java Char on actionscript
- 24. Java char變量
- 25. 複製char到char *
- 26. 如何將列表<Integer>轉換爲java中的Integer []?
- 27. Java(Android):帶多種類型的列表(String; Integer; Integer)
- 28. 如何從Map.Entry <Integer,Float>轉換爲Java中的Integer
- 29. Integer i = 3 vs Integer i = new Integer(3)
- 30. integer類型的列不能包含char類型的值
''11''不是字符。 – SLaks 2014-09-24 00:29:20
這不是「錯誤」。有些人可能會認爲它是不好的風格,但是由於Java被指定爲使用Unicode來進行字符編碼,它將始終工作(假設'c'總是一個十進制數字字符)。 – 2014-09-24 00:37:21