簡體   English   中英

將字符串轉換為整數並將其添加到Java中

[英]Converting strings to integers and adding them in Java

我有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中整數到字符串的轉換非常容易,但是我發現字符串到整數的轉換要困難一些。

要解析整數-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.

最簡單的方法是使用Integer.parseInt(str1) 返回一個包含由字符串表示的值的int

valueOf()返回一個Integer對象,而不是一個int原語。

由於您的人數太多,因此無法放入int中。 使用BigInteger類。

我不知道您的項目以及實際上是什么問題。 但是我從您的部分信息中猜測,正如您所解釋的,您有多組以位表示的字符串。

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

將這些十進制值相加會產生不明確的結果,因為整數可以是多個整數值的總和。 請看下面的示例,其中總共有5種可能性(帶有正的十進制值)可以產生6。

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

如果您以這種方式進行操作,那么您只是犯了一個錯誤,您的情況別無其他。 一種更好的解決方案是計算單個字符串的十進制值。 無需添加( + )它們,只需concat( 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更好地實現上述方法。

希望這對您有很大幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM