簡體   English   中英

手動修剪Java中的字符串(不帶String.trim())

[英]Manually trimming a string in Java (without String.trim())

我正在考慮不使用String.trim()來執行此操作的想法。 我制作了一種修剪前導和尾隨空格的方法,如下所示:

public static String removeLeadingAndTrailingSpaces(String s) {
    StringBuilder sb = new StringBuilder();
    int i = 0;

    while (s.charAt(i) == ' ') {
        i++;
    }

    for (; i < s.length(); i++) {
        sb.append(s.charAt(i));
    }

    // aux is the string with only leading spaces removed
    String aux = sb.toString();
    int j = aux.length() - 1;

    while (aux.charAt(j) == ' ') {
        j--;
    }

    // now both leading and trailing spaces have been removed
    String result = aux.substring(0, j + 1);

    return result;
}

我已經對其進行了測試,並且效果100%。 但是,我不認為這是最有效或最實用的實現。 我還能怎么做呢? 我覺得可以在不使用額外變量auxj情況下完成此操作,但是我想不出辦法。

只需從末尾檢查s即可確定尾隨空白在哪里開始並返回s的子字符串。 不需要sbaux

public static String removeLeadingAndTrailingSpaces(String s) {
    int end = s.length();
    int i = 0;

    while (i < end && s.charAt(i) == ' ') {
        i++;
    }

    while (end > i && s.charAt(end - 1) == ' ') {
        end--;
    }

    return end> i ? s.substring(i, end) : "";
}

為了更接近trim() ,您需要檢查所有空白字符,而不僅僅是' '

要刪除空格,請使用myString.replace(“”,“”);

感謝和問候,Dilip D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM