私はあなたのプロジェクトと実際にあなたの問題が何であるかについて知りません。しかし、あなたの部分的な情報から、あなたが説明したように、ビット表現で複数の文字列のセットがあると推測するようになりました。
str1 = "1000110.....11";
str1 = "1110110.....01"; etc
これらの10進値を加算すると、整数が複数の整数値の合計になる可能性があるため、あいまいな結果が得られます。以下の例を参照してください。ここでは、合計5つの可能性[正の10進値]があり、6を生成します。
1+5 = 6;
2+4 = 6;
3+3 = 6;
4+2 = 6;
5+1 = 6;
そのように進めば、エラーを実行するだけで、他に何も起こりません。より良い解決策の1つは、個々の文字列の10進値を計算することです。それらを追加(+)する代わりに、それらを連結(結合)して単一の文字列を形成します。私はこのアプローチを提案しています。なぜなら、これは常に一意の値を与え、後で個々の文字列の10進値を知る必要があるかもしれないからです。
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よりも上記のアプローチを実装する方が良いです。
これがお役に立てば幸いです。