2024-1-20
文章目录
-
-
-
- [[2788. 按分隔符拆分字符串](https://leetcode.cn/problems/split-strings-by-separator/)](#2788. 按分隔符拆分字符串)
-
-
2788. 按分隔符拆分字符串
思路:
- 对于每个单词,使用一个可变字符串
StringBuilder
来构建拆分后的单词。初始时,可变字符串为空。 - 遍历每个单词的每个字符,如果遇到指定的分隔符,就将可变字符串中的字符构成一个新的单词,并将其添加到结果列表中。然后清空可变字符串,准备构建下一个单词。
- 如果遇到的不是分隔符,则将当前字符添加到可变字符串中。
- 最后,如果可变字符串非空,则说明最后一个单词还没有添加到结果列表中,因此需要将其添加到结果列表中。
- 返回拆分后的结果列表。
java
//2788. 按分隔符拆分字符串
public List<String> splitWordsBySeparator(List<String> words, char separator) {
// 创建一个新的字符串列表,用于存储拆分后的结果
List<String> res = new ArrayList<>();
// 遍历原始字符串列表中的每个单词
for (String word : words) {
// 创建一个可变字符串,用于构建拆分后的单词
StringBuilder sb = new StringBuilder();
// 获取当前单词的长度
int length = word.length();
// 遍历当前单词的每个字符
for (int i = 0; i < length; i++) {
// 获取当前字符
char c = word.charAt(i);
// 如果当前字符是分隔符
if (c == separator) {
// 如果可变字符串不为空,则将其添加到结果列表中,并清空可变字符串
if (sb.length() > 0) {
res.add(sb.toString());
sb.setLength(0);
}
} else {
// 如果当前字符不是分隔符,则将其添加到可变字符串中
sb.append(c);
}
}
// 如果可变字符串不为空,则将其添加到结果列表中
if (sb.length() > 0) {
res.add(sb.toString());
}
}
// 返回拆分后的字符串列表
return res;
}