Java 是否从字符串中修剪前导字符或尾随字符?

Java 是否从字符串中修剪前导字符或尾随字符?,java,trim,Java,Trim,如何在java中修剪字符串的前导或尾随字符 例如,斜杠字符“/”—我对空格不感兴趣,希望在不同的时间修剪前导字符或尾随字符。您可以使用Apache修剪前导字符或修剪尾随字符 例如: System.out.println(StringUtils.stripStart("//test/me", "/")); 将输出: 测试/me 请注意,如果由于某种原因无法使用整个StringUtils库,则可以删除相关部分:您可以使用 领先: System.out.println("//test/me".rep

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

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

您可以使用Apache修剪前导字符或修剪尾随字符

例如:

System.out.println(StringUtils.stripStart("//test/me", "/"));
将输出:

测试/me

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

您可以使用

领先:

System.out.println("//test/me".replaceAll("^/+", ""));
尾随:

System.out.println("//test/me//".replaceAll("/+$", ""));

从String str中修剪前导和/或尾随字符串的我的版本。两个参数都可能为null。当str没有前导和/或尾随s时,它不会更改

String trim(String str, String s) {
    String res = s == null ? str : str == null ? null : s.length() >= str.length() ? str : str.replaceFirst(s, "");
    if ((res != null) && (s != null) && (res.length() >= s.length())) {
        return res.substring(res.length() - s.length(), res.length()).equals(s) ? res.substring(0, res.length() - s.length()) : res;
    }
    return res;
}

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

String removeLeadingChar(String s, char c) {
    int i;
    for(i = 0; i < s.length() && s.charAt(i) == c; ++i);
    return s.substring(i);
}
String removeReadingChar(字符串s、字符c){
int i;
对于(i=0;i
如果要删除任何带有字符、字符串或正则表达式的尾部
char

Trim,同样的逻辑也适用 如果运行时对您来说不是一个大问题,那么这段代码将证明非常有用


对于使用Spring的用户:


这似乎很有效。。。您可以@SayanSil解决方案使用正则表达式语法。^/+只在字符串的开头选择斜杠。这太棒了!
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
    }
}
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,'.');
}