Những người khác đã chỉ ra rằng nhân b
1000 không nên gây ra một vấn đề - nhưng nếu một là số không, bạn sẽ mất nó. (Bạn sẽ nhận được một chuỗi gồm 4 chữ số thay vì 5.)
Đây là phương pháp thay thế (mục đích chung) - giả định rằng tất cả các giá trị nằm trong khoảng 0-9. (Bạn hoàn toàn có thể đưa vào một số mã để ném một ngoại lệ nếu điều đó hóa ra là không đúng, nhưng tôi đã bỏ nó ra khỏi đây để đơn giản.)
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);
}
Trong trường hợp này bạn sẽ gọi nó bằng :
String result = concatenateDigits(a, b, c, d, e);
Nguồn
2010-04-20 11:46:24
Sử dụng Horner-Scheme: (((((* 10 + b) * 10 + c) * 10 + d) * 10 + e. Tại sao bạn mất b, khi bạn thêm chúng? – Searles
Thông tin thêm về Horner-Scheme: http://stackoverflow.com/questions/1991380/what-does-the-operator-do-in-java/ – polygenelubricants