是否可以将包含数字的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. 如何将char数组转换为int?
- 4. 将Int转换为Char数组
- 5. INT转换为char
- 6. 在Java中将int的2d数组转换为char和string
- 7. 转换类型为int(C :: *)(INT,CHAR)为int类型(INT,CHAR)
- 8. 转换int数组为int
- 9. C - int数组到char *转换
- 10. 将int转换为char
- 11. 将char转换为int?
- 12. INT类型转换为char *
- 13. 转换一个int为char *
- 14. INT转换为char *指针
- 15. 将char *转换为int
- 16. 将short int []转换为char *
- 17. int转换为char * C++中
- 18. char不转换为int
- 19. int转换为const char *
- 20. INT为CHAR类型转换
- 21. 将int转换为char
- 22. 将const char *转换为int
- 23. 将int转换为char?
- 24. F# - 将char转换为int
- 25. 将char *转换为int
- 26. 从char *转换为int
- 27. 如何将char数组转换为int数组?
- 28. 将char数组转换为int数组与空间
- 29. 使用Golang将int数组转换为char数组?
- 30. 这会将char数组转换为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