Как объединить значения INT в Java? - PullRequest
30 голосов
/ 20 апреля 2010

У меня есть следующие значения:

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

Как мне объединить эти значения, чтобы я получил строку 10221; обратите внимание, что умножение a на 10000, b на 1000 ..... и e на 1 не будет работать с b=0, и поэтому я потеряю его, когда добавлю значения.

Ответы [ 19 ]

1 голос
/ 20 апреля 2010

Вы можете использовать

String x = a+"" +b +""+ c+""+d+""+ e;
int result = Integer.parseInt(x);
1 голос
/ 10 апреля 2013

Предполагается, что вы начинаете с переменных:

int i=12;
int j=12;

Это даст вывод 1212:

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

И это даст вывод 24:

System.out.print(i+j);
1 голос
/ 20 апреля 2010

Я бы предложил преобразовать их в строки.

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

Затем преобразование обратно в целое число:

Integer.valueOf(concatenated.toString());
1 голос
/ 08 июня 2011

Как насчет того, чтобы вообще не использовать строки ...

Это должно работать для любого количества цифр ...

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);
1 голос
/ 20 апреля 2010

Использовать 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());
1 голос
/ 20 апреля 2010

Люди беспокоились о том, что происходит, когда == 0. Легко исправить это ... перед ним стоит цифра.:)

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

Самый большой недостаток: он создает две строки.Если это важно, String.format может помочь.

int sum = a*10000 + b*1000 + c*100 + d*10 + e;
System.out.println(String.format("%05d", sum));
0 голосов
/ 26 декабря 2015

Не могли бы вы просто сделать строки чисел, объединить их и преобразовать строки в целочисленное значение?

0 голосов
/ 02 октября 2015
public class joining {

    public static void main(String[] args) {
        int a=1; 
        int b=0;
        int c=2;
        int d=2;
        int e=1;

        String j = Long.toString(a);
        String k = Long.toString(b);
        String l = Long.toString(c);
        String m = Long.toString(d);
        String n = Long.toString(e);

       /* String s1=Long.toString(a);    // converting long to String
        String s2=Long.toString(b);
        String s3=s2+s1;
        long c=Long.valueOf(s3).longValue();    // converting String to long
        */

        System.out.println(j+k+l+m+n);  
    }
}
0 голосов
/ 20 апреля 2010

Лучшие решения уже обсуждаются. Черт возьми, вы также можете сделать это: Учитывая, что вы всегда имеете дело с 5 цифрами,

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

Я не утверждаю, что это лучший способ; просто добавив альтернативный способ взглянуть на подобные ситуации. :)

...