【问题标题】:Trim unwanted characters in a Java String修剪 Java 字符串中不需要的字符
【发布时间】:2016-08-22 08:40:29
【问题描述】:

我有几个 Java 字符串,如下所示:

ab-android-regression-4.4-git
ab-ios-regression-4.4-git
ab-tablet-regression-4.4-git

但是,我不想要这样冗长且不需要的名称,因此我想摆脱以 ab- 开头和以 -git 结尾的部分。所有字符串的模式都是相同的(以 ab 开头,以 git 结尾)

Java 中是否有一个函数/类可以帮助我修剪这些东西?例如,类似:

String test = "ab-android-regression-4.4-git";
test.trim(ab, git)

另外,StringUtils class 可以帮我解决这个问题吗?关于正则表达式的想法?

编辑部分:我也想知道如何消除字符串中的- 字符并将所有内容更改为大写字母

【问题讨论】:

    标签: java string split trim text-processing


    【解决方案1】:

    这是一种更通用的方法,用于从字符串中删除前缀和后缀:

    public static String trim (String str, String prefix, String suffix)
    {
        int indexOfLast = str.lastIndexOf(suffix);
    
        // Note: you will want to do some error checking here 
        // in case the suffix does not occur in the passed in String
    
        str = str.substring(0, indexOfLast);
    
        return str.replaceFirst(prefix, "");
    }
    

    用法:

    String test = "ab-android-regression-4.4-git";
    String trim = trim(test, "ab-", "-git"));
    

    要删除“-”并将其变为大写,那么只需:

    trim = trim.replaceAll("-", " ").toUpperCase();
    

    【讨论】:

      【解决方案2】:

      您可以使用test = test.replace("ab-", "") 和类似的"-git",或者您可以使用test = StringUtils.removeStart(test, "ab-") 和类似的removeEnd

      如果您可以使用StringUtils,我更喜欢后者,因为如果这些表达式匹配,它不会意外删除文件名的中间部分。

      【讨论】:

      • 谢谢,我刚刚编辑了我的问题以消除更多数据并更改为大写字母。
      • 如果您想要空格而不是连字符,请使用test.replaceAll("-"," ")。如果您不想使用空格,请使用test.replaceAll("-","")。如果您想要全部大写字母,请使用test.toUpperCase()。如果您想在每个单词上使用真正的大写字母,则需要执行一些您自己的逻辑。
      【解决方案3】:

      由于要修剪的部分的大小是恒定的,您应该简单地使用子字符串:

      yourString.substring(3, yourString.length - 4)
      

      【讨论】:

      • 谢谢,我刚刚编辑了我的问题以消除更多数据并更改为大写字母。
      【解决方案4】:

      如果你的字符串总是在开头包含 ab- 并且在结尾包含 -git 那么这里是代码

      String test = "ab-android-regression-4.4-git";
      test=test.substring(3, s.length() - 4);
      System.out.println("s is"+s);  //output is android-regression-4.4
      

      要了解有关子字符串的更多信息,请单击https://docs.oracle.com/javase/tutorial/java/data/manipstrings.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 2017-10-16
        相关资源
        最近更新 更多