保存字符串拆分的部分,即使没有值也是如此

时间:2019-06-23 13:30:58

标签: java arraylist split

我想在字母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),对我来说并没有解决任何问题。

2 个答案:

答案 0 :(得分:0)

我能想到的一种方法是在实际分割字符串之前先删除所有前导A或后缀{}:

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:

  

如果限制为负数,则将尽可能多地应用图案,并且数组可以具有任意长度。