程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java去除字符串多余空格以及首尾空格

Java去除字符串多余空格以及首尾空格

編輯:關於JAVA
 

對於這個問題,我的處理方法是:

1.先通過遞歸數出字符串中連續空格的個數。

2.將有連續空格的位置去除多余空格。

3.判斷首尾是否有空格。

 

第一步,判斷當前位置是否是空格以及連續空格的個數,這裡使用一個遞歸的方法比較簡單。代碼如下:

public static int getBlankNumber(String s, int index)
{
    if (index < s.length()) {
        if (s.charAt(index) == ' ') {
            return getBlankNumber(s, index + 1) + 1;
        } else {
            return 0;
        }
    } else {
        return 0;
    }
}

傳入字符串對象 s ,以及當前的位置 index,最終返回一個 int 型的結果,也就是多少個空格。

 

第二步,跟上返回的空格數,與當前的位置,使用 String 對象自帶的 substring() 方法,將字符串分割為兩部分,去掉中間的空格,再連接起來,使連續多個空格變為一個。代碼如下:

public static String mergeBlank(String s)
{
    int numberBlank = 0;
    String a1;  //字符串的第一部分
    String a2;  //字符串的第二部分
    for (int index = 0; index < s.length(); index++) {  //循環整個字符串,判斷是否有連續空格
        numberBlank = getBlankNumber(s, index);
        if (numberBlank >= 2) {  //根據連續空格的個數以及當前的位置,截取字符串
            a1 = s.substring(0, index);
            a2 = s.substring(index + numberBlank - 1, s.length());
            s = a1 + a2;  //合並字符串
        }
    }
    return s;
}

 

第三步,第二步完成之後,第三步就很簡單了,因為我們已經將字符串中多余的空格變為一個空格,如果需要去除首尾空格,只需要判斷首尾是否是空格即可。代碼如下:

public static String trim(String s)
{
    if (s.charAt(0) == ' ') {
        s = s.substring(1, s.length());
    }
    if (s.charAt(s.length() - 1) == ' ') {
        s = s.substring(0, s.length() - 1);
    }
    return s;
}

 

這樣一來,一個去除多余空格,去除首尾空格的函數就完成了。接下來調用一下看看,代碼如下:

public static void main(String[] args) {
    String name = mergeBlank("   aaa   a     aa       ");
    System.out.println("name="+name+"|");  //結果:name= aaa a aa |
    name = trim(name);
    System.out.println("name="+name+"|");  //結果:name=aaa a aa|
}
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved