String s= "aaaaaaaaaaaBBBhelloDDDeeeeBBBworldDDDffffff";
我要挑BBB和DDD之間的內容放到一個字符串數組String[] ss
這是hello和world單詞。如何從字符串中選取特定部分?
有沒有辦法做到這一點?
String s= "aaaaaaaaaaaBBBhelloDDDeeeeBBBworldDDDffffff";
我要挑BBB和DDD之間的內容放到一個字符串數組String[] ss
這是hello和world單詞。如何從字符串中選取特定部分?
有沒有辦法做到這一點?
使用函數substring(int beginIndex,int endIndex)。 如果您可以對索引進行硬編碼。
使用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"
*/
String[] array = s.split("BBB|DDD");
您可以使用模式匹配:
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);
是的,有。正則表達式會以相當簡單的方式進行。但在此之前,我們可以看看你做了什麼以及你面臨的問題嗎? – SudoRahul
你有什麼嘗試?這似乎是正則表達式最直接的用法 – Ordous