Java 用于转换逗号分隔字符串的正则表达式模式
将具有逗号分隔值的字符串更改为编号的新行值 例如: 输入:Java 用于转换逗号分隔字符串的正则表达式模式,java,Java,将具有逗号分隔值的字符串更改为编号的新行值 例如: 输入:a、b、c 输出: 1.a 2.b 3.c 发现很难使用正则表达式模式来改变它,而不是将字符串转换为字符串数组并循环。我不太确定,是否可以只使用正则表达式而不使用任何循环。对于我来说,将字符串拆分为数组并对其进行迭代的解决方案是最简单的: String value = "a,b,c"; String[] values = value.split(","); String result = ""; for (int i=1; i<=
a、b、c
输出:
1.a
2.b
3.c
发现很难使用正则表达式模式来改变它,而不是将字符串转换为字符串数组并循环。我不太确定,是否可以只使用正则表达式而不使用任何循环。对于我来说,将字符串拆分为数组并对其进行迭代的解决方案是最简单的:
String value = "a,b,c";
String[] values = value.split(",");
String result = "";
for (int i=1; i<=values.length; i++) {
result += i + "." + values[i-1] + "\n";
}
在这里,
,
符号被替换为\n
新行符号,然后我们在每行的开头寻找一组字符[(^\\w+)]
。如果找到任何组,那么我们将在该组的开头追加一个行号。但即使在这里,我们也必须使用循环来设置行号。这个逻辑没有第一个逻辑那么清晰。System.out.println(Arrays.toString(“a,b,c.split(“\\,”)))你可以试试这个。我喜欢循环。。但模式匹配是我想要的方式
String value = "a,b,c";
Pattern pattern = Pattern.compile("[(^\\w+)]");
Matcher matcher = pattern.matcher(value.replaceAll("\\,", "\n"));
StringBuffer s = new StringBuffer();
int i = 0;
while (matcher.find()) {
matcher.appendReplacement(s, ++i + "." + matcher.group());
}
System.out.println(s.toString());