use stringbuffer
1 public class Solution { 2 public String intToRoman(int num) { 3 // IMPORTANT: Please reset any member data you declared, as 4 // the same Solution instance will be reused for each test case. 5 StringBuffer result = new StringBuffer(); 6 String[][] mapping = { 7 {"", "M", "MM", "MMM", "", "", "", "", "", ""}, //0 – 3000 8 {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}, //100 – 900 9 {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}, //10 – 90 10 {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"} //0 – 9 11 }; 12 int scale = 1000; 13 int i = 0; 14 while(num > 0){ 15 int digit = num / scale; 16 result.append(mapping[i++][digit]); 17 num = num % scale; 18 scale /= 10; 19 } 20 return result.toString(); 21 22 } 23 }