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 對您的學生來說太復雜,您可以將其替換為普通的字符串連接(效率較低且不好的做法)。
添加回答
舉報