1 回答
TA贡献1836条经验 获得超5个赞
我从头开始做了一个新的拆分实现,至少在我看来(主观)是“更容易”理解的。你可能会也可能不会觉得它有用。
public static String[] split(String input, char separator) {
// Count separator (spaces) to determine array size.
int arrSize = (int)input.chars().filter(c -> c == separator).count() + 1;
String[] sArr = new String[arrSize];
int i = 0;
StringBuilder sb = new StringBuilder();
for (char c : input.toCharArray()) { // Checks each char in string.
if (c == separator) { // If c is sep, increase index.
sArr[i] = sb.toString();
sb.setLength(0); // Clears the buffer for the next word.
i++;
}
else { // Else append char to current word.
sb.append(c);
}
}
sArr[i] = sb.toString(); // Add the last word (not covered in the loop).
return sArr;
}
我假设您想使用原始数组进行教学,否则,我会返回一个 ArrayList 以进一步简化。如果 StringBuilder 对您的学生来说太复杂,您可以将其替换为普通的字符串连接(效率较低且不好的做法)。
添加回答
举报