Sha*_*mli 32 java integer concatenation string-concatenation
我有以下价值观:
int a=1;
int b=0;
int c=2;
int d=2;
int e=1;
Run Code Online (Sandbox Code Playgroud)
我如何连接这些值,以便我最终得到一个字符串10221; 请注意,乘以a10000,乘以b1000 .....和e1将不起作用b=0 ,因此当我将值加起来时,我将失去它.
Mic*_*rdt 41
最简单(但有点脏)的方式:
String result = "" + a + b + c + d + e
Run Code Online (Sandbox Code Playgroud)
编辑:我不推荐这个并同意Jon的评论.添加那些额外的空字符串可能是简洁性和清晰度之间的最佳折衷.
pol*_*nts 31
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();
}
Run Code Online (Sandbox Code Playgroud)
Zee*_*han 27
这对我有用.
int i = 14;
int j = 26;
int k = Integer.valueOf(String.valueOf(i) + String.valueOf(j));
System.out.println(k);
Run Code Online (Sandbox Code Playgroud)
结果是 1426
use*_*421 12
只是为了不忘记这个 format方法
String s = String.format("%s%s%s%s%s", a, b, c, d, e);
Run Code Online (Sandbox Code Playgroud)
(%1.1s%1.1s%1.1s%1.1s%1.1s如果你只想要每个数字的第一个数字......)
T .*_*T . 11
其实,
int result = a * 10000 + b * 1000 + c * 100 + d * 10 + e;
String s = Integer.toString(result);
Run Code Online (Sandbox Code Playgroud)
会工作的.
注意:这个时候才起作用a大于0和所有的b,c,d并e在[0,9].例如,如果b是15,Michael的方法将为您提供您可能想要的结果.
小智 7
完全不使用字符串怎么样?
这应该适用于任意数量的数字......
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);
Run Code Online (Sandbox Code Playgroud)
StringBuffer sb = new StringBuffer();
sb.append(a).append(b).append(c)...
Run Code Online (Sandbox Code Playgroud)
正如其他答案所示,将值保持为int是首选.