42

I have the following values:

int a=1; 
int b=0;
int c=2;
int d=2;
int e=1;

How do i concatenate these values so that i end up with a String that is 10221; please note that multiplying a by 10000, b by 1000.....and e by 1 will not working since b=0 and therefore i will lose it when i add the values up.

4

22 に答える 22

50

最も簡単な(しかしやや汚れた)方法:

String result = "" + a + b + c + d + e

編集:これはお勧めしません。Jon のコメントに同意します。これらの余分な空の文字列を追加することは、おそらく、短さと明瞭さの間の最良の妥協点です。

于 2010-04-20T11:46:30.363 に答える
36

Michael Borgwardt のソリューションは 5 桁の場合に最適ですが、桁数が可変の場合は、次のようなものを使用できます。

public static String concatenateDigits(int... digits) {
   StringBuilder sb = new StringBuilder(digits.length);
   for (int digit : digits) {
     sb.append(digit);
   }
   return sb.toString();
}
于 2010-04-20T11:47:10.110 に答える
34

これは私にとってはうまくいきました。

int i = 14;
int j = 26;
int k = Integer.valueOf(String.valueOf(i) + String.valueOf(j));
System.out.println(k);

それは次のようになりました1426

于 2012-11-07T11:35:02.007 に答える
16

formatメソッドを忘れないように

String s = String.format("%s%s%s%s%s", a, b, c, d, e);

%1.1s%1.1s%1.1s%1.1s%1.1s各数字の最初の桁だけが必要な場合...)

于 2010-04-20T14:31:14.580 に答える
12

Actually,

int result = a * 10000 + b * 1000 + c * 100 + d * 10 + e;
String s = Integer.toString(result);

will work.

Note: this will only work when a is greater than 0 and all of b, c, d and e are in [0, 9]. For example, if b is 15, Michael's method will get you the result you probably want.

于 2010-04-20T11:43:54.917 に答える
5

1000を掛けbても、値が失われることはありません。計算については、以下を参照してください。

10000
    0
  200
   20
    1
=====
10221
于 2010-04-20T11:44:09.447 に答える
5
StringBuffer sb = new StringBuffer();
sb.append(a).append(b).append(c)...

他の回答が示すように、値を int として保持することをお勧めします。

于 2010-04-20T11:44:19.607 に答える
4

楽しみのために...それをしない方法;-)

String s = Arrays.asList(a,b,c,d,e).toString().replaceAll("[\\[\\], ]", "");

この場合、誰もが実際にこの方法を考えているわけではありませんが、これは、特定のオブジェクトメンバーへのアクセスを許可することが重要である理由を示しています.それを変更することができます。そうしないと、コードを壊す危険があります。

于 2010-04-20T13:06:46.287 に答える
4

b1000 を掛けても問題はないと指摘する人もいますが、 aが 0 の場合、結果としてそれを失うことになります。(5 桁ではなく 4 桁の文字列が得られます。)

代替の (汎用) アプローチを次に示します。これは、すべての値が 0 ~ 9 の範囲にあることを前提としています。(例外が正しくないことが判明した場合は、例外をスローするコードを挿入する必要がありますが、簡単にするためにここでは省略しています。)

public static String concatenateDigits(int... digits)
{
    char[] chars = new char[digits.length];
    for (int i = 0; i < digits.length; i++)
    {
        chars[i] = (char)(digits[i] + '0');
    }
    return new String(chars);
}

この場合、次のように呼び出します。

String result = concatenateDigits(a, b, c, d, e);
于 2010-04-20T11:46:24.043 に答える
4

文字列をまったく使用しないのはどうですか...

これは、任意の桁数で機能するはずです...

int[] nums = {1, 0, 2, 2, 1};

int retval = 0;

for (int digit : nums)
{
    retval *= 10;
    retval += digit;
}

System.out.println("Return value is: " + retval);
于 2011-06-07T22:01:36.080 に答える
1

人々はa==0のときに何が起こるかについて悩んでいました。そのための簡単な修正...その前に数字があります。:)

int sum = 100000 + a*10000 + b*1000 + c*100 + d*10 + e;
System.out.println(String.valueOf(sum).substring(1));

最大の欠点:2つの文字列が作成されます。それが大したことなら、String.formatが役立つでしょう。

int sum = a*10000 + b*1000 + c*100 + d*10 + e;
System.out.println(String.format("%05d", sum));
于 2010-04-20T12:10:48.347 に答える
1

それらを文字列に変換することをお勧めします。

StringBuilder concatenated = new StringBuilder();
concatenated.append(a);
concatenated.append(b);
/// etc...
concatenated.append(e);

次に、整数に変換します。

Integer.valueOf(concatenated.toString());
于 2010-04-20T11:45:25.740 に答える
1

StringBuilder を使用する

StringBuilder sb = new StringBuilder(String.valueOf(a));
sb.append(String.valueOf(b));
sb.append(String.valueOf(c));
sb.append(String.valueOf(d));
sb.append(String.valueOf(e));
System.out.print(sb.toString());
于 2010-04-20T11:46:16.587 に答える
1

変数から始めると仮定します:

int i=12;
int j=12;

これにより、次の出力が得られます1212

System.out.print(i+""+j); 

そして、これは出力を与えるでしょう24

System.out.print(i+j);
于 2013-04-10T15:59:50.653 に答える
1

使用できます

String x = a+"" +b +""+ c+""+d+""+ e;
int result = Integer.parseInt(x);
于 2010-04-20T12:19:49.070 に答える
0

最良の解決策はすでに議論されています。一体、これも実行できます。常に5桁を処理しているとすると、

(new java.util.Formatter().format("%d%d%d%d%d", a,b,c,d,e)).toString()

私はこれが最善の方法であるとは主張していません。同様の状況を調べる別の方法を追加するだけです。:)

于 2010-04-20T15:18:39.970 に答える
-1

数字を文字列にして連結し、文字列を整数値に変換するだけでよいのではないでしょうか?

于 2015-12-26T15:03:22.110 に答える