【发布时间】:2019-11-05 12:58:30
【问题描述】:
我想分割字母 A 上的单词行。例如:AoAoAoA 应该产生 [o, o, o],这与我的代码一样。但问题是单词在两个 A 之间没有字符,例如:AoAA 只会导致 [o]。如何调整我的代码以使结果变为 [o,]?
这是因为我想看看分隔符之间是否有相同数量的相同字符。如果有,就会发生一些事情,如果没有,就会发生其他事情。 “AoAA”在 A 之间没有相等数量的“o”,因此应该这样对待。
List<String> myList = new ArrayList <>();
String row = scanner.nextLine();
String [] splitString = row.split ("A");
for (String s : splitString) {
if (!s.equals(splitString[0])) {
myList.add(s);
}}
ps。我知道我的问题似乎是重复的,我尝试了几种与我的问题相似的解决方案,但由于某种原因,它们并没有解决我的问题。例如,通过简单地添加 split (string, int),并没有为我解决任何问题。
【问题讨论】:
-
"AoAA".split("A");将导致[, o]而不是[o]或[o, ]。 -
@SamuelPhilipp 是的,我通过简单地排除第一部分来解决这个问题。由于我的话将以 A 开头和结尾,我认为排除第一部分是明智之举,因为那部分总是空的。
-
@Bubletan 我查看了那个并尝试了他们的解决方案,但没有任何改变,它仍然没有保存列表中的空白部分。
-
"AoAA".split("A")结果["", "o"]和"AoAA".split("A", -1)结果["", "o", "", ""]。如果你删除第一个和最后一个字符串,你会得到["o", ""],这就是你想要的。 -
所以你想保留空字符串不被拆分,而不是末尾或开头的空字符串?