如何从字符串中挑选特定部分?

时间:2014-06-13 11:17:41

标签: java android

String s= "aaaaaaaaaaaBBBhelloDDDeeeeBBBworldDDDffffff";

我想将BBB和DDD之间的内容选择为字符串数组String[] ss
这就是你好和世界的话。

有什么办法吗?

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

使用函数substring(int beginIndex,int endIndex)。 如果你可以硬编码索引。

答案 2 :(得分: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"
*/

答案 3 :(得分:0)

String[] array = s.split("BBB|DDD");