如何填充先前的值;分开的字符串?



我有一个用分号分隔的字符串,像这样:"11;21;12;22;13;;14;24;15;25".

看,13后面少了一个值。我想用13(前一个值)填充缺失的数字,并将其存储到另一个字符串中。

试试这个

static final Pattern PAT = Pattern.compile("([^;]+)(;;+)");
public static void main(String[] args) {
String input = "11;21;12;22;13;;;14;24;15;25";
String output = PAT.matcher(input)
.replaceAll(m -> (m.group(1) + ";").repeat(m.group(2).length()));
System.out.println(output);
}

输出:

11;21;12;22;13;13;13;14;24;15;25

到目前为止你尝试了什么?

我认为你可以用很多方法来解决这个问题。如果您喜欢使用正则表达式,您可以这样做:([^;]*);;+.

或者您可以使用简单的String.split(";");并遍历结果数组。每个空字符串都表示存在这个;;

String str = "11;21;12;22;13;;14;24;15;25";
String[] a = str.split(";");
for(int i=0; i<a.length; i++){
if(a[i].length()==0){
System.out.println(a[i-1]);
}
}

最新更新