2014-06-13 56 views
-5
String s= "aaaaaaaaaaaBBBhelloDDDeeeeBBBworldDDDffffff"; 

我要挑BBB和DDD之間的內容放到一個字符串數組String[] ss
這是hello和world單詞。如何從字符串中選取特定部分?

有沒有辦法做到這一點?

+2

是的,有。正則表達式會以相當簡單的方式進行。但在此之前,我們可以看看你做了什麼以及你面臨的問題嗎? – SudoRahul

+0

你有什麼嘗試?這似乎是正則表達式最直接的用法 – Ordous

回答

0

使用函數substring(int beginIndex,int endIndex)。 如果您可以對索引進行硬編碼。

0

使用String.split("BBB")String.split("DDD")

例如爲:

String[] splitByBBB = s.split("BBB"); 
/* 
in your String: 
splitByBBB[0] is "aaaaaaaaaaa" 
splitByBBB[1] is "helloDDDeeee" 
splitByBBB[2] is "worldDDDffffff" 
*/ 

然後使用split("DDD")和採取的第一個指標:

String[] ss = new String[ splitByBBB.length - 1 ]; 
for(int i = 0; i < splitByBBB.length; i++) 
{ 
    ss[i] = splitByBBB[i + 1].split("DDD")[0]; 
} 
/* 
in your String: 
ss[0] is "hello" 
ss[1] is "world" 
*/ 
0
String[] array = s.split("BBB|DDD"); 
1

您可以使用模式匹配:

String s= "aaaaaaaaaaaBBBhelloDDDeeeeBBBworldDDDffffff"; 
     Pattern p = Pattern.compile("BBB(.+?)DDD",Pattern.DOTALL); 
     Matcher m = p.matcher(s); 
     ArrayList<String> sa = new ArrayList<String>(); 
     while (m.find()) { 
      sa.add(m.group(1)); 
     } 
     System.out.println(sa); 
相關問題