【问题标题】:How to split a string into 2 at the last occurrence of an underscore character [closed]如何在最后一次出现下划线字符时将字符串拆分为 2 [关闭]
【发布时间】:2014-06-03 12:34:35
【问题描述】:

给定一个包含多个下划线字符的字符串,如何将其拆分为围绕最后一个下划线字符的两个子字符串?

例如。 "a_b_c" => ["a_b", "_c"]

【问题讨论】:

    标签: java regex string


    【解决方案1】:

    您可以在String 上使用lastIndexOf,它会返回最后一次出现的字符链的索引。

    String thing = "132131_12313_1321_312";
    int index = thing.lastIndexOf("_");
    String yourCuttedString = thing.substring(0, index);
    

    如果在字符串中找不到匹配项,则返回-1

    【讨论】:

      【解决方案2】:

      你可以用String#lastIndexOf(String str),试试看:

      int lastIndexOf = str.lastIndexOf("_");
      String substring1 = str.substring(0, lastIndexOf);
      String substring2 = str.substring(lastIndexOf+1, str.length());
      

      【讨论】:

      • str.substring(lastIndexOf+1, str.length())也可以直接写成str.substring(lastIndexOf+1)
      【解决方案3】:

      试试这个

          String[] a = s.split("_(?!.*_)");
      

      【讨论】:

        【解决方案4】:

        你可以使用方法的String last index,这会返回一个int,然后你可以将它传递给subString方法。

        String code = "123_456_789";
        String subString = code.subString(code.lastIndexOf("_"));
        

        【讨论】:

        • 没有将int 作为参数的split 方法。
        • 你说得对,我的意思是 subString,我的错,会更新以反映这一点。
        猜你喜欢
        • 2014-01-12
        • 2011-11-13
        • 2017-02-23
        • 1970-01-01
        • 2011-01-28
        • 1970-01-01
        • 2022-01-25
        • 2021-08-12
        • 1970-01-01
        相关资源
        最近更新 更多