将字符串转换为整数并在Java中添加它们

时间:2012-08-15 20:06:03

标签: java string integer type-conversion

我有4个字符串:

 str1 = 10110011;(length of all string is:32)
 str2 = 00110000;
 str3 = 01011000;
 str4 = 11110000;

在我的项目中,我必须添加这些字符串,结果应为:

result[1] = str1[1]+str2[1]+str3[1]+str4[1];

result应该作为整数的加法获得。

对于上面的示例,result = 22341011

我知道Java中的整数到字符串转换非常简单,但我发现字符串到整数的转换更加困难。

4 个答案:

答案 0 :(得分:7)

解析整数-2^31 < n < 2^31-1使用:

Integer value = Integer.valueOf("10110011");

对于较大的数字,请使用BigInteger类:

BigInteger value1 = new BigInteger("101100111011001110110011101100111011001110110011");
BigInteger value2 = // etc
BigInteger result = value1.add(value2).add(value3); //etc.

答案 1 :(得分:2)

最简单的方法是使用Integer.parseInt(str1)。返回包含字符串表示的值的int

valueOf()会返回Integer个对象,而不是int原语。

答案 2 :(得分:1)

因为你的数字太大,所以它们不适合int。使用BigInteger类。

答案 3 :(得分:0)

我不了解您的项目以及您的问题究竟是什么。但是我从你的部分信息中猜到,你所解释的,你在位表示中有多组字符串。

str1 = "1000110.....11";
str1 = "1110110.....01"; etc

添加这些十进制值,给出一个不明确的结果,因为整数可以是多个整数值的总和。只需看下面的示例,其中总共有5种可能性[具有正十进制值]以产生6。

1+5 = 6;
2+4 = 6;
3+3 = 6;
4+2 = 6;
5+1 = 6;

如果你继续这样做,你只会犯一个错误,在你的情况下没有别的。 一个更好的解决方案是, 计算单个字符串的十进制值。而不是添加( + )它们,只需将它们连接起来( join )以形成单个字符串。 我建议这种方法,因为,这总是给出一个唯一的值,以后您可能需要知道单个字符串十进制值。

String strVal1 = String.format(computeDecimal(str1));
String strVal2 = String.format(computeDecimal(str2));
String strVal3 = String.format(computeDecimal(str3));
.
.
.
String strValn = String.format(computeDecimal(strn));

String myVal = String.concate(strVal1,strVal1,strVal1,....strValn);

现在你可以按照自己的意愿处理你的字符串了。

//This will give you a non conflicting result.

BigIntegers 更好地实施上述方法。

希望这对你有很大帮助。