private ListString formatPhoneListString phone 将phone转换为字符串 String phoneNumber = phonetoString; 以逗号分割字符串为字符数组 String phoneArray = phoneNumbersplit; 存储分割后的字符数组
为了更好地理解和修改代码,将代码进行了注释和格式化,并添加了一些修改:
private List<String> formatPhone(List<String> phone) {
// 将phone转换为字符串
String phoneNumber = String.join(",", phone);
// 以逗号分割字符串为字符数组
String[] phoneArray = phoneNumber.split(",");
// 存储分割后的字符数组
List<String> phoneGroups = new ArrayList<>();
// 每组的大小
int groupSize = 50;
// 起始位置
int start = 0;
while (start < phoneArray.length) {
// 结束位置为起始位置+每组大小,但不超过字符数组长度
int end = Math.min(start + groupSize, phoneArray.length);
// 截取字符数组的一部分作为一组
String[] group = Arrays.copyOfRange(phoneArray, start, end);
// 将截取到的一组字符数组以逗号连接成字符串并添加到phoneGroups中
phoneGroups.add(String.join(",", group));
// 更新起始位置
start += groupSize;
}
return phoneGroups;
}
修改建议:
- 不需要将
phone转换为字符串,可以直接使用phone列表进行操作。 phoneGroups列表可以使用StringBuilder进行拼接,避免频繁创建和连接字符串。- 可以将每组大小作为参数传入方法,使得方法更加灵活。
修改后的代码如下:
private List<String> formatPhone(List<String> phone, int groupSize) {
List<String> phoneGroups = new ArrayList<>();
StringBuilder groupBuilder = new StringBuilder();
for (int i = 0; i < phone.size(); i++) {
if (groupBuilder.length() > 0) {
groupBuilder.append(",");
}
groupBuilder.append(phone.get(i));
if ((i + 1) % groupSize == 0 || i == phone.size() - 1) {
phoneGroups.add(groupBuilder.toString());
groupBuilder = new StringBuilder();
}
}
return phoneGroups;
}
``
原文地址: https://www.cveoy.top/t/topic/iqmU 著作权归作者所有。请勿转载和采集!