Java 英文句子去掉多餘的空格
阿新 • • 發佈:2019-01-10
英文句子一般都是每個英文單詞之間只隔一個空格,開頭和末尾沒有空格。
思路:
1.去掉首尾空格
2.遍歷字串,判斷是否為空格
(1)當前字元不是空格,加入
(2) 當前字元是空格,再判斷下一個字元是否是空格,下一個字元是空格,則跳過;不是空格則當前字元是單詞之間的空格,加入
上程式碼
public class Main { public static void main(String[] args) { test(" I am code "); test("I am code"); test(" I am code"); test("I am code "); } private static void test(String str){ StringBuilder result = new StringBuilder(); // 去掉首尾的空格 String trimStr = str.trim(); int length = trimStr.length(); for (int i=0;i<length;i++){ char currentStr = trimStr.charAt(i); // 不是空格,加入 if (currentStr!=' '){ result.append(currentStr); } // 是空格,判斷下一個字元是否為空格,不為空格則加入,是空格則跳過 if (currentStr==' '&&trimStr.charAt(i+1)!=' '){ result.append(' '); } } System.out.print("result="+result.toString()); System.out.println(" length="+result.length()); } }
結果
還有一種方法就是利用String裡的replaceAll(String regex,String replacement)方法
可以看到使用了正則,則我們可以想到匹配大於等於2的空格字串替換成1個空格。
private static void test1(String str){ // 匹配大於等於2個空格字串替換成1個空格 String handleStr = str.replaceAll(" {2,}", " "); // 去掉首尾的空格 String result = handleStr.trim(); System.out.print("result="+result.toString()); System.out.println(" length="+result.length()); }