2012-01-03 55 views
0

我试图将字符串值转换为整数,但是每当我这样做时,它都会给出字符的ASCI值,而不是实际键入的字符串。使用数组在Java中将字符串转换为Int

实施例:

有键盘上的一个用户输入“11101”来命名二进制字符串变量

for(int i = 0; i < binary.length(); i++){ 
storage[i] = Integer.valueOf(binary.charAt(i)); 
} 

如果我看存储[I]的值,我将只能看到ASCI数字的值,而不是实际的1或0的方法。

+0

为什么?你不需要一个数组来存储一个整数。 – EJP 2013-12-03 22:59:18

回答

2

试试这个:

for(int i = 0; i < binary.length(); i++){ 
    storage[i] = Integer.valueOf(binary.substring(i, i + 1)); 
} 
+0

谢谢,这对我来说非常合适。 – 2012-01-03 03:20:19

3

使用Integer.parseInt(str,radix)方法。

int no=Integer.parseInt("11101",2); 

//or 

int no=Integer.parseInt("11101"); 
+0

我从来不知道基数,非常感谢。我会从中得到很多的使用。 – 2012-01-03 03:21:04

2

这应该可以做到。

storage[i] = Integer.parseInt(binary.charAt(i)); 
+0

除非无效输入不会失败,例如:110011911 – PlexQ 2012-01-03 03:10:40

+0

谢谢你的例子,我实际上已经试过这个,但仍然得到了相同的结果,但是谢谢你的信息:) – 2012-01-03 03:22:52

+0

@PlexQ没有提到验证 – 2012-01-03 03:27:36

2
for(int i = 0; i < binary.length(); i++){ 
    storage[i] = Integer.parseInt(binary.charAt(i), 2); 
} 
+0

另一个很好的例子,非常感谢。 – 2012-01-03 03:22:10

0
for(int i = 0; i < binary.length(); i++){ 
    storage[i] = binary.charAt(i) - '0'; 
}