题目很简单,给定一个正整数n,如果n能整除3的话往list里加入Fizz,如果n能整除5的话往list里面加入Buzz,如果即能整除3又能整除5的话,加入FizzBuzz,代码也很简单
public List<String> fizzBuzz(int n){
String[] strs = new String[n];
for (Integer i = 1; i <=n ; i++) {
if (i%3==0&&i%5==0){
strs[i-1]="FizzBuzz";
}else if (i%3==0){
strs[i-1]="Fizz";
}else if (i%5==0){
strs[i-1]="Buzz";
}else{
strs[i-1]=i.toString();
}
}
return Arrays.asList(strs);
}
思考:
Integer.toString()
和int+""
这两者的结果虽然相同,但是由于+语法糖的存在,字符串相加实际上是利用的StringBuilder实现的,所以效率上就低了很多,前者的写法更加合适- 为了更加通用,可以考虑使用HashMap存储对应的规则,遍历规则然后用一个字符串累加这样来得到结果,避免使用if else这样的结构,尤其是在规则比较多了之后