Java:从字符串的开头和结尾删除固定数量的字符

时间:2013-12-07 18:31:16

标签: java string parsing character

我正在处理大小不同的字符串,但我知道在开头和结尾总会有相同数量的字符。 e.g。

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

是否有一种方法(比如String类中的方法)允许我每次解析字符串,删除前面的字符和后面的字符?

此外,如果字符串包含两个' - '?:

,该怎么办?
String i = "id3-t-jfhd3udj-t-endid";

由于

7 个答案:

答案 0 :(得分:4)

  

我知道将会有相同数量的字符   乞讨和结束

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

  

返回一个新字符串,该字符串是此字符串的子字符串。子串   从指定的beginIndex开始并延伸到at处的字符   index endIndex - 1。

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

或者,如果您知道所需的部分始终位于两个'-'之间,则可以使用:

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

最后一个解决方案将始终适用于任何字符数 开始和结束,而第一个只适用于您的特定情况。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

然后使用String.substring方法:

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

答案 3 :(得分:0)

如果它总是采用那种确切的格式(使用' - '),那么获取字符串中间部分的最简单[可能不是最有效]方法可能是i.split("-")[1]

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

答案 4 :(得分:0)

这种方法怎么样

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);

答案 5 :(得分:0)

如果字符串始终采用<prefix>-<content>-<suffix>形式(包含两个“-”),那么您可以尝试:

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

答案 6 :(得分:0)

  

此外,如果字符串包含两个' - '?:

,该怎么办?
String i = "id3-t-jfhd3udj-t-endid";

只要字符串包含偶数个破折号,并且您想要的子字符串位于中间,此代码就可以使用。

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