gpt4 book ai didi

Java 解析值直到行尾

转载 作者:行者123 更新时间:2023-12-01 14:48:02 26 4
gpt4 key购买 nike

简单的问题 - 可能 - 但我找不到没有解决方法的解决方案。

我想解析某事。就像

1) item1;; item3
2) item1;item2;
3) ; item2;
4) ;;
...

我有一个匹配函数,可以匹配给定索引处的所有项目并将其返回为字符串列表:

public static List<String> getAllMatchings(String input, String reg, int groupIndex) {
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(input);

List<String> ls = new ArrayList<String>();

while (matcher.find()) {
if (groupIndex <= matcher.groupCount()) {
ls.add(matcher.group(groupIndex));
}
}

return ls;
}

现在,有了这样一行,我想要一个像 { "item1", "item2", "item3"} 这样的字符串列表。但我得到 - 使用我的解决方案 - { "item1", "item2", "item3", ""}:

List<String> strList = getAllMatchings(line, "([^;]*)(;|\\z)",1);

因此,我必须采取一个丑陋的解决方法:

strList.remove(strList.size()-1);

不太好。但我没有找到解决这个问题的方法。有人可以帮助我吗?

添加:顺便说一下。在某些情况下,此解决方法不起作用。情况 4) 只给了我 2 个空元素。

最佳答案

为什么不直接用分号分割呢?

更新:计算分号以确保元素数量正确

int count = StringUtils.countMatches("item1;item2;;;;", ";");
String[] values = input.split(";",count);

(需要Commons Lang)

关于Java 解析值直到行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15202113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com