我需要在字符串中的每兩個單詞後添加一個逗號。JAVA - 在字符串中的每兩個單詞之後添加一個逗號?
String s = "every day every night every minute every second";
我想造成這種格式:
String s = "every day, every night, every minute, every second";
起初我還以爲這將是很容易解決,但我無法來解決這個問題。任何幫助將不勝感激謝謝。
我需要在字符串中的每兩個單詞後添加一個逗號。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