是否可以將包含數字的char[]
數組轉換爲 和int
?Java char數組轉換爲int
9
A
回答
16
char[]
是否包含組成數字位數的Unicode字符?在這種情況下,簡單地從char[]
創建一個字符串和使用的Integer.parseInt:
char[] digits = { '1', '2', '3' };
int number = Integer.parseInt(new String(digits));
1
與更高性能的另一種方式:
char[] digits = { '1', '2', '3' };
int result = 0;
for (int i = 0; i < chars.length; i++) {
int digit = ((int)chars[i] & 0xF);
for (int j = 0; j < chars.length-1-i; j++) {
digit *= 10;
}
result += digit;
}
10
甚至更高的性能和更乾淨的代碼(沒有需要分配一個新的String對象):
int charArrayToInt(char []data,int start,int end) throws NumberFormatException
{
int result = 0;
for (int i = start; i < end; i++)
{
int digit = (int)data[i] - (int)'0';
if ((digit < 0) || (digit > 9)) throw new NumberFormatException();
result *= 10;
result += digit;
}
return result;
}
6
char[] digits = { '0', '1', '2' };
int number = Integer.parseInt(String.valueOf(digits));
這也適用。
0
您可以使用像這樣得到逐一詮釋
char[] chars = { '0', '1', '2' };
int y=0;
for (int i = 0; i < chars.length; i++) {
y = Integer.parseInt(String.valueOf(chars[i]));
System.out.println(y);
}
0
那麼,你可以嘗試連這
char c[] = {'1','2','3'};
int total=0,x=0,m=1;
for(int i=c.length-1;i>=0;i--)
{
x = c[i] - '0';
x = x*m;
m *= 10;
total += x;
}
System.out.println("Integer is " + total);
相關問題
- 1. 將char數組轉換爲int數組?
- 2. 將char數組轉換爲單個int?
- 3. 將Int轉換爲Char數組
- 4. INT轉換爲char
- 5. 在Java中將int的2d數組轉換爲char和string
- 6. 轉換類型爲int(C :: *)(INT,CHAR)爲int類型(INT,CHAR)
- 7. C - int數組到char *轉換
- 8. 將int轉換爲char
- 9. 將char *轉換爲int
- 10. 將char *轉換爲int
- 11. 將int轉換爲char
- 12. INT爲CHAR類型轉換
- 13. 轉換一個int爲char *
- 14. 從char *轉換爲int
- 15. int轉換爲const char *
- 16. 將char轉換爲int?
- 17. char不轉換爲int
- 18. INT轉換爲char *指針
- 19. F# - 將char轉換爲int
- 20. 將int轉換爲char?
- 21. 將const char *轉換爲int
- 22. 將char數組轉換爲int數組與空間
- 23. 使用Golang將int數組轉換爲char數組?
- 24. 將org.bytedeco.javacpp.Mat轉換爲Java int/float數組
- 25. 無法將參數'int'轉換爲'char'
- 26. 將數組從unsigned char *轉換爲char *
- 27. 不能將'std :: string {aka std :: basic_string <char>}'轉換爲'char *'將參數'2'轉換爲'int Save(int,char *)'
- 28. 將int轉換爲char並反轉
- 29. 將TCHAR數組轉換爲char數組
- 30. java轉換爲int
你可以簡單地用'結果*取代你的內循環= 10; '。 – 2012-07-16 13:35:37
你的意思是將'digit * = 10;'替換爲'result * = 10;'? – 2012-07-18 11:39:20
不,你可以去掉*整個內部循環('for(int j = ...'),並用'result * = 10;'替換所有的三行。 – 2012-07-18 11:49:57