如何获取没有长度和indexOF的String对象的内部信息.(JAVA)



我有一个api,它以以下格式返回字符串:

ACTNEW_38_0001,ACTO_57999

我需要提取数值(57999,或38_0001),但是:

1:他们可以按不同的顺序到达。

2:它只能到达其中一个。

3:它必须是轻量级的。

我大概知道怎么做。我的实际代码看起来差不多是这样的:

private final String tipoActivity = "ACTO_";
private String obtenerSplitOldElem(String toSplit) {
if(toSplit.contains(",")) {
String[] split = toSplit.split(",");
int element = ArrayUtils.indexOf(toSplit, "ACTO_");
String split2[] = split[element-1];
return split2[1];

} else {
String[] split = split.split("ACTO_");   
return split[1];
}
return "";
}

问题是:

我认为应该有更好的方法来达到这个目的。

2:我还没有试过arrayUtils.indexOf。如果它不工作,我将不得不做一个包含,可能在一个for循环,但我认为这是一个坏主意对于这么简单的东西。

任何帮助都会很感激。由于

您可以在CSV字符串上使用正则表达式查找所有方法:

String input = "ACTNEW_38_0001,ACTO_57999";
List<String> nums = Pattern.compile("\d+(?:_\d+)*")
.matcher(input)
.results()
.map(MatchResult::group)
.collect(Collectors.toList());
System.out.println(nums);  // [38_0001, 57999]

相关内容

  • 没有找到相关文章

最新更新