【问题标题】:Java: remove fixed number of characters at the start and the end from a stringJava:从字符串的开头和结尾删除固定数量的字符
【发布时间】:2013-12-07 18:31:16
【问题描述】:

我正在处理大小不同的字符串,但我知道开头和结尾的字符数总是相同的。例如

String i = "id3-jfhd3udj-endid";
String i = "id7-fdl3-endid";
String i = "id1-lkjf348hosjsldf-endid";

有没有一种方法(比如 String 类中的方法)可以让我每次都解析字符串,删除前面的字符和后面的字符?

另外,如果字符串包含两个'-'怎么办?:

String i = "id3-t-jfhd3udj-t-endid";

谢谢

【问题讨论】:

  • String.substring(int,int) 可以。

标签: java string parsing character


【解决方案1】:

我知道在 乞求结束

只需使用substring(int beginIndex, int endIndex) 方法:

返回一个新字符串,它是该字符串的子字符串。子串 从指定的 beginIndex 开始并延伸到字符 索引 endIndex - 1。

i.substring(4, i.length()-6)

或者,如果你知道你想要的部分总是在两个'-'之间,你可以使用:

i.substring(i.indexOf('-')+1, i.lastIndexOf('-'))

最后一个解决方案将始终有效,无论字符数是多少 开始和结束是,而第一个仅适用于您的特定情况。

【讨论】:

  • 如果字符串包含两个'-'怎么办?:“id3-t-jfhd3udj-t-endid”谢谢
【解决方案2】:

您可以使用 substring() 方法提取所需的字符串。

语法:substring(int startIndex,int endIndex);

int index1= i.indexOf("-");
int index2= i.lastIndexOf("-");
i=i.substring(index1+1,index2);

【讨论】:

    【解决方案3】:

    然后使用String.substring方法:

    string.substring(string.indexOf("-")+1, string.lastIndexOf("-"))
    

    【讨论】:

      【解决方案4】:

      另外,如果字符串包含两个'-'怎么办?:

      String i = "id3-t-jfhd3udj-t-endid";
      

      只要字符串包含偶数个破折号,并且你想要的子字符串在中间,这段代码就可以工作。

          public String extractString(String s) {
              String[] parts = s.split("-");
              return parts[parts.length / 2];
          }
      

      【讨论】:

        【解决方案5】:

        如果它始终采用这种精确的格式(带有“-”),那么获取字符串中间部分的最简单 [可能不是最有效的] 方法可能是 i.split("-")[1]

        如果没有,您可以使用i.substring(4, i.length() - 6))

        【讨论】:

          【解决方案6】:

          这个方法怎么样

          String i = "id1-lkjf348hosjsldf-endid";
          System.out.println(i);
          if (i.contains("-")) { // check for '-'
            i = i.substring(1+i.indexOf('-'), i.lastIndexOf('-')); // first dash to last dash.
          }
          System.out.println(i);
          

          【讨论】:

            【解决方案7】:

            如果字符串总是<prefix>-<content>-<suffix>的形式(包含两个'-')那么你可以试试这个:

            String content = string.split("-")[1];
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-01-12
              • 1970-01-01
              • 1970-01-01
              • 2011-12-22
              • 1970-01-01
              • 2013-10-07
              • 1970-01-01
              相关资源
              最近更新 更多