Java 格式化任何以逗号分隔的字符串
我想将任何字符串格式化为逗号分隔格式。基本上,除单个空格外的任何空格组合(1个或多个)都应替换为“,” 以下是我目前的方法:Java 格式化任何以逗号分隔的字符串,java,regex,Java,Regex,我想将任何字符串格式化为逗号分隔格式。基本上,除单个空格外的任何空格组合(1个或多个)都应替换为“,” 以下是我目前的方法: private String formatCommaDelimiter(String text) { text = text.trim(); text = text.replaceAll("(\\S)( +|( *[\\t\\n\\x0B\\f\\r]+ *)+)(\\S)", "$1, $4"); text = text.replaceAll(
private String formatCommaDelimiter(String text) {
text = text.trim();
text = text.replaceAll("(\\S)( +|( *[\\t\\n\\x0B\\f\\r]+ *)+)(\\S)", "$1, $4");
text = text.replaceAll(",+", ",");
return text;
}
除了单个字符(例如“a\n b\n c”)外,它工作正常。知道怎么修吗?谢谢 为什么不干脆这样做呢
text.replaceAll("\\t|\\n|\\x0B|\\f|\\r| {2,}", ", ");
\s
类似于[\t\n\x0B\f\r]
为什么不干脆这样做呢
text.replaceAll("\\t|\\n|\\x0B|\\f|\\r| {2,}", ", ");
\s
类似于[\t\n\x0B\f\r]
感谢Anirudh让我走上正轨!
我想出来了:
text.replaceAll("\\t|\\n|\\x0B|\\f|\\r|\\s{2,}", ", ");
感谢阿尼鲁德让我走上正轨! 我想出来了:
text.replaceAll("\\t|\\n|\\x0B|\\f|\\r|\\s{2,}", ", ");
它不适用于“a\nb”。没有单个空格,但只有一行新行就可以了。因此基本上正确的答案应该是
text.replaceAll(\\t |\\n |\\x0B |\\f |\\r |\\s{2,},“,”)代码>谢谢。@mblitz要更清楚文本。replaceAll(\\t |\\n |\\x0B |\\f |\\r |{2,},“,”)代码>@Anirudh No.因为两个连续的换行符也应该被替换。1个或多个空格的任意组合,单个空格除外。它不适用于“a\nb”。没有单个空格,但只有一行新行就可以了。因此基本上正确的答案应该是text.replaceAll(\\t |\\n |\\x0B |\\f |\\r |\\s{2,},“,”)代码>谢谢。@mblitz要更清楚文本。replaceAll(\\t |\\n |\\x0B |\\f |\\r |{2,},“,”)代码>@Anirudh No.因为两个连续的换行符也应该被替换。一个或多个空格的任意组合,单个空格除外。