Java - 修剪字符串中的前导或尾随字符?

Bra*_*rks 48 java trim

如何修剪java中字符串的前导或尾随字符?

例如,斜杠字符"/" - 我对空格不感兴趣,我希望在不同的时间修剪前导或尾随字符.

Rei*_*eus 74

你可以用

领导:

System.out.println("//test/me".replaceAll("^/+", ""));
Run Code Online (Sandbox Code Playgroud)

尾随:

System.out.println("//test/me//".replaceAll("/+$", ""));
Run Code Online (Sandbox Code Playgroud)

  • 这似乎很好......你可以[在线测试](http://ideone.com/shHHV9) (3认同)

Bra*_*rks 31

您可以使用Apache StringUtils.stripStart修剪前导字符,或使用StringUtils.stripEnd修剪尾随字符.

例如:

System.out.println(StringUtils.stripStart("//test/me", "/"));
Run Code Online (Sandbox Code Playgroud)

将输出:

考验我

请注意,如果由于某种原因您无法使用整个StringUtils库,则可以删除相关部分,如下所述:


Min*_*mal 6

使用字符、字符串或正则表达式进行修剪

如果运行时对您来说不是一个大问题,那么这段代码将非常有用。

public class StringTrimmer {
    public static String trim(String string, char ch){
        return trim(string, ch, ch);
    }

    public static String trim(String string, char leadingChar, char trailingChar){
        return string.replaceAll("^["+leadingChar+"]+|["+trailingChar+"]+$", "");
    }

    public static String trim(String string, String regex){
        return trim(string, regex, regex);
    }

    public static String trim(String string, String leadingRegex, String trailingRegex){
        return string.replaceAll("^("+leadingRegex+")+|("+trailingRegex+")+$", "");
    }

    // test
    public static void main(String[] args) {
        System.out.println(trim("110100", '1', '0')); // outputs: 01
        System.out.println(trim("**Aa0*#**", '*')); // outputs: Aa0*#
        System.out.println(trim("123##22222", "12", "22")); // outputs: 3##2
        System.out.println(trim("101101##10101", "101")); // outputs: ##10
        System.out.println(trim("123##abcde", "\\d", "[c-e]")); // outputs: ##ab
    }
}
Run Code Online (Sandbox Code Playgroud)


Ole*_*leg 5

如果您想从字符串中删除前导字符,您可以使用简单的迭代:

String removeLeadingChar(String s, char c) {
    int i;
    for(i = 0; i < s.length() && s.charAt(i) == c; ++i);
    return s.substring(i);
}
Run Code Online (Sandbox Code Playgroud)

如果您想删除任何尾随的char.


Gab*_*tes 5

对于那些使用 Spring 的人:

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html#trimTrailingCharacter-java.lang.String-char-

import org.springframework.util.StringUtils;    

public void setFileName(String fileName) {
    // If the extension does not exist trim the trailing period
    this.fileName = StringUtils.trimTrailingCharacter(fileName,'.');
}
Run Code Online (Sandbox Code Playgroud)