JAVA - 在字符串中的每两个单词之后添加一个逗号?
我需要在字符串中的每两个单词后添加一个逗号。JAVA - 在字符串中的每两个单词之后添加一个逗号?
String s = "every day every night every minute every second";
我想造成这种格式:
String s = "every day, every night, every minute, every second";
起初我还以为这将是很容易解决,但我无法来解决这个问题。任何帮助将不胜感激谢谢。
您可以使用下面的正则表达式:
String result = s.replaceAll("([^ ]+ [^ ]+) ", "$1, ");
您可以使用网上正则表达式测试,看看它是如何工作的:https://regex101.com/r/9eSRzC/2
编辑:另外,如果你不希望使用正则表达式,您可以使用此代码:
String s = "every day every night every minute every second";
StringBuilder sb = new StringBuilder();
int last = -1;
while (true) {
int i = s.indexOf(' ', last+1);
if (i < 0) break;
i = s.indexOf(' ', i+1);
if (i < 0) break;
sb.append(s.substring(last+1,i)).append(", ");
last = i;
}
sb.append(s.substring(last+1));
String result = sb.toString();
System.out.println(result);
如果你不想使用正则表达式,这将做的工作:
String[] strArray = s.split(" ");
StringBuilder sb = new StringBuilder();
for(int i=0; i<strArray.length; i++) {
sb.append(strArray[i]);
if(i%2!=0) {
sb.append(",");
}
sb.append(" ");
}
return sb.toString();
此代码工作正常!非常感谢:) –
请注意,这仍然使用正则表达式在拆分调用。更好的方法是迭代原始字符串中的字符并分割自己。 – Nulano
String s = "every day every night every minute every second";
char[] str = s.toCharArray();
int count = 0;
for(int i=0;i<str.length;i++){
if(str[i] == ' '){
count++;
if(count%2 == 0){
str[i] = ',';
}
}
}
System.out.println(new String(str));
这有一个删除空间并用逗号替换它的问题。 (逗号后应该有一个空格 - 请参阅示例。) – Nulano
你有什么试过的?有很多可能的解决方案。 – jlordo
获取所有空格并为每个秒空间设置逗号。 –
这可能会起作用:'String result = s.replaceAll(“([^] + [^] +)”,“$ 1,”);' – Nulano