2013-12-07 132 views
1

我正在处理大小不同的字符串,但我知道始终会有相同数量的字符。例如Java:从字符串中删除固定数量的字符开头和结尾

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

有没有一种方法(如在String类的方法),这将让我每次解析字符串,删除前面字符和后面的字符?

而且,如果该字符串包含两个“ - ” ?:

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

感谢

+0

String.substring(int,int)会做。 – Will

回答

0

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

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

只要字符串包含要在中间偶数破折号,以及串,该代码将工作。

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

我知道,总会有在 相同的字符数的乞讨,并最终

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

返回一个新字符串,该字符串是该字符串的子字符串。该子 在 指数endIndex的开始于指定的beginIndex,并延伸到人物 - 1

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

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

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

最后的解决方案将始终工作的字符的任何数量的 beggining和结束,而第一个将只为您的特定情况下工作。

+0

如果该字符串包含两个 ' - ' ?: “ID3-T-jfhd3udj叔endID所” 感谢 – user1049712

+0

@ user1049712 Obvioulsy是woulnd't工作。 –

1

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

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

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

如果它总是在正确的格式(与“-'s),最简单的[可能不是最有效的,虽然]的方式来获得中间部分的字符串大概是i.split("-")[1]。如果不是,您可以使用i.substring(4, i.length() - 6))

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

然后用String.substring方法:

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

如果字符串始终处于<prefix>-<content>-<suffix>形式(包含两个“-”),那么你可以试试这个:

String content = string.split("-")[1]; 
相关问题