2013-06-20 41 views
0

我想将任何字符串格式化为逗号分隔格式。基本上,空格(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; 
} 

它的工作完美除了单个字符(例如, “一个\ n b \ n c键”)。任何想法如何解决它?谢谢!

回答

0

感谢Anirudh为把我在正确的轨道上! 我想通了:

text.replaceAll("\\t|\\n|\\x0B|\\f|\\r|\\s{2,}", ", "); 
4

为什么就不能做到这一点

text.replaceAll("\\t|\\n|\\x0B|\\f|\\r| {2,}", ", "); 

\s类似于[ \t\n\x0B\f\r]

+0

+1,几秒打我;) – jlordo

+1

它不以 “A \ NB” 工作。没有单一的空间,但一个新的行是好的。 – mblitz

+0

编辑该问题以使其更清楚。 – mblitz