我想在字母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),对我来说并没有解决任何问题。
答案 0 :(得分:0)
我能想到的一种方法是在实际分割字符串之前先删除所有前导A
或后缀{1>}:
String[] result = input.replaceAll("^A|A$", "")
.split("A", -1);
这是因为导致字符串的两端出现空分割的是前导A和结尾A。如果我们先删除那些A,那么就不会有任何不希望的拆分。
答案 1 :(得分:0)
使用split()
的{{3}}版本:
List<String> myList = Array.asList(input.replaceAll("^A*", "").split("A", -1));
根据javadoc:
如果限制为负数,则将尽可能多地应用图案,并且数组可以具有任意长度。