01-题目:
1.编写一个程序,这个程序把一个整数数组中的每个元素用逗号连接成一个字符串。
2.例如,根据内容为[1][2][3]的数组形成内容为"1,2,3"的字符串。
02-思路:
1.创建一个整数数组。
2.构建一个StringBuilder(可变的字符串序列)
3.循环输出。
03-介绍:
1.<<:是逻辑左移,右边补0。
如:array.length的长度是4,二进制码是0100;array.length<<1的长度是8,<<表示将1左移一位,二进制码是1000;则(array.length<<1)-1的长度是7。
2.append和+的区别?
在循环中使用+=会创建多个StringBuilder对象,效率低,而使用append(),只会创建一个。
代码:
1.第一种方式
package com.eleven;
public class TwoDemo {
public static void main(String[] args) {
int[] array = new int[] { 1, 2, 3, 4 };
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length - 1; i++) {
sb.append(array[i] + ",");
}
sb.append(array[array.length - 1]);
System.out.println(sb);
}
}
2.第二种方式(推荐)
package com.eleven.test;
public class TwoDemoTest {
public static void main(String[] args) {
int[] array = new int[] { 1, 2, 3, 4 };
StringBuilder sb = new StringBuilder((array.length << 1) - 1);
for (int i = 0; i < array.length - 1; i++) {
sb.append(array[i]).append(",");
}
sb.append(array[array.length - 1]);
System.out.println(sb);
}
}
3.第三种方式(推荐)
package com.eleven.test;
public class TwoDemoTestYh {
public static void main(String[] args) {
int[] array = new int[] { 1, 2, 3, 4 };
String list = listToIds(array);
System.out.println(list);
}
public static String listToIds(int[] list) {
StringBuilder stringBuilder = new StringBuilder();
for (Object object : list) {
stringBuilder.append(object.toString()).append(",");
}
if (stringBuilder.length() > 0) {
stringBuilder.deleteCharAt(stringBuilder.length() - 1);
}
return stringBuilder.toString();
}
}