Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 格式化任何以逗号分隔的字符串_Java_Regex - Fatal编程技术网

Java 格式化任何以逗号分隔的字符串

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(

我想将任何字符串格式化为逗号分隔格式。基本上,除单个空格外的任何空格组合(1个或多个)都应替换为“,”

以下是我目前的方法:

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.因为两个连续的换行符也应该被替换。一个或多个空格的任意组合,单个空格除外。