我想拆分字母 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);
}}
附言。我知道我的问题似乎是重复的,我已经尝试了几种与我的问题类似的解决方案,但由于某种原因它们没有解决我的问题。例如,通过简单地添加 split(string, int),并没有为我解决任何问题。
最佳答案
我能想到的一种方法是在实际拆分字符串之前先删除所有前导或尾随 A
:
String[] result = input.replaceAll("^A|A$", "")
.split("A", -1);
这是因为前导和尾随 A 导致字符串两端出现空拆分。如果我们先删除那些 A,那么我们将不会得到任何不希望的拆分。
关于java - 即使没有值,也保存部分字符串拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56724373/