我有这样一个字符串:"aa-bb,ccdd,eeff,gg-gg,cc-gg"
。我需要用 '-'
符号拆分字符串并从中创建两个字符串,但如果原始字符串的逗号分隔部分不包含 '-'
,需要使用一些占位符而不是子字符串。在上面的示例输出的情况下应该是:
字符串 1:
"{aa,ccdd,eeff,gg,cc}"
字符串 2:
"{bb,0,0,gg,gg}"
我不能使用 lastIndexOf()
方法,因为输入是在一个字符串中。我不确定零件有多少。
if(rawIndication.contains("-")){
String[] parts = rawIndication.split("-");
String part1 = parts[0];
String part2 = parts[1];
}
最佳答案
这是一个使用流的 Java 8 解决方案。逻辑是首先用逗号分割输入字符串,生成一个术语数组。然后,对于每个术语,我们在 dash 上再次拆分,保留第一个条目。对于没有破折号的术语,将只保留整个字符串。最后,我们连接回输出字符串。
String input = "aa-bb,ccdd,eeff,gg-gg,cc-gg";
int pos = 1;
String output = String.join(",", Arrays.stream(parts)
.map(e -> e.split("-").length >= (pos+1) ? e.split("-")[pos] : "0")
.toArray(String[]::new));
System.out.println(output);
这个输出:
bb,0,0,gg,gg
关于java - 按条件拆分和配对子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56161733/