2013-12-07 131 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]; 
相關問題