我需要在字符串的每个大写字母前附加,
。我应该使用正则表达式还是split
?
示例:
String s = "TonyRoyTroyMagic";
我希望输出像
"Tony,Roy,Troy,Magic"
答案 0 :(得分:1)
使用regex
String s = "TonyRoyTroyMagic";
s = s.replaceAll("(?<=[A-Za-z0-9])[A-Z]", ",$0");
System.out.println(s); // Tony,Roy,Troy,Magic
?<=
可以检查大写字母[A-Z]
是否至少落后[A-Za-z0-9]
。它将阻止将逗号作为字符串的第一个字符。
在您显示的示例中,以下内容也是有效的
(?<=[a-z])[A-Z]
答案 1 :(得分:0)
你可以迭代字符串并创建一个新的字符串:
String S = "TonyRoyTroyMagic";
StringBuilder sb = new StringBuilder();
for (int i = 0;i<S.length();i++ ) {
char c = S.charAt(i);
if (Character.isUpperCase(c) && i != 0 ) {
sb.append(",");
}
sb.append(c);
}
System.out.println(sb.toString());
//result: Tony,Roy,Troy,Magic