将一串数字转变成号码的格式
- 例如:Kata.createPhoneNumber(new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}) // => returns “(123) 456-7890
方式1
public class PhoneExampleTests {
@Test
public void tests() {
assertEquals("(123) 456-7890", Kata.createPhoneNumber(new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}));
}
}
public class Kata {
public static String createPhoneNumber(int[] numbers) {
// Your code here!
int len = numbers.length;
StringBuilder str1=new StringBuilder("()");
StringBuilder str2=new StringBuilder(" ");
StringBuilder str3=new StringBuilder("-");
StringBuilder str_num=new StringBuilder();
for (int i=1;i<4;i++){
str1.insert(i,numbers[i-1]);
//System.out.println(str1.toString());
}
for(int i=3;i<6;i++){
str2.append(numbers[i]);
//System.out.println(str2.toString());
}
for(int i=6;i<10;i++){
str3.append(numbers[i]);
//System.out.println(str3.toString());
}
str_num.append(str1).append(str2).append(str3);
return str_num.toString();
}
}
2种更简洁的方式
public class Kata {
public static String createPhoneNumber(int[] numbers) {
return String.format("(%d%d%d) %d%d%d-%d%d%d%d",numbers[0],numbers[1],numbers[2],numbers[3],numbers[4],numbers[5],numbers[6],numbers[7],numbers[8],numbers[9]);
}
}
public class Kata {
public static String createPhoneNumber(int[] numbers) {
return String.format("(%d%d%d) %d%d%d-%d%d%d%d", java.util.stream.IntStream.of(numbers).boxed().toArray());
}
}
此练习来源于http://www.codewars.com/ ,感兴趣的可以去该网站了解一下。是一个适合初学者练习写程序,还能刷等级的开源平台。和Leetcode很相似,可以每天刷一些难度适宜的题目慢慢升级。