使用逗号分隔值将字符串更改为编号的换行值
例如:
输入:a,b,c
输出:
1.a
2.b
3.c
使用正则表达式模式很难改变它,而不是将字符串转换为字符串数组并循环遍历。
答案 0 :(得分:1)
我不确定,只有正则表达式才能实现,而不需要任何循环。在我之前,将字符串拆分为数组并迭代它的解决方案是最直接的:
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";
}
当然,没有拆分和任何类型的阵列都可以做到,但这可能是一个有点尴尬的解决方案,如:
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());
此处,
符号被\n
新行符号替换,然后我们在每行[(^\\w+)]
的开头查找一组字符。如果找到任何组,那么我们将在该组的开头附加一个行号。但即使在这里,我们也必须使用循环来设置行号。这个逻辑并不像第一个那样清晰。