日期:2014-05-20  浏览次数:20787 次

求一个字符串算法
"hello[a]boys[b]and[c]girls[d]xxx"
如果取出所有[]内部的字符,放到一个数组或List中, 如上面的字符串,应该把a,b,c,d四个字符分别放进数组中.

------解决方案--------------------
正则表达式

Java code
public class Test76 {
    public static void main(String[] args) {
        String s = "hello[a]boys[b]and[c]girls[d]xxx";
        String[] as = s.split("((?<=\\])|^).*?((?=\\[)|$)");
        for (int i = 1; i < as.length; i++)
            System.out.println(as[i]);
    }
}

------解决方案--------------------
我也是才会用不久~
这是从网上搜的
正则表达式30分钟入门教程
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
挺浅显易懂的
------解决方案--------------------
结合一些教程,再看看 java.util.regex.Pattern 的 API DOC 就基本上可以了解了。
------解决方案--------------------
public class getDaKuoHaoNeiRong {
public static void main(String[] args) {
String srcString = "hello[a]boys[b]and[c]girls[d]xxx";
List<String> kuoHaoNeiRong = new ArrayList();
for (int i = 0;; i++) {
int zuoKuoHao = srcString.indexOf('[');
if (zuoKuoHao < 0)
break;
int youKuoHao = srcString.indexOf(']');
kuoHaoNeiRong.add(i, srcString.substring(zuoKuoHao + 1, youKuoHao));
srcString = srcString.substring(youKuoHao + 1);
}
}
}