如题,小弟想将,类似 :XM='李兵' and SFZHM='3771' 这样的字符串,截取成两个list,一个list存的是[XM,SFZHM],另一个list寸的是[李兵,3771], 请问使用java如何截取???在此谢过。java

解决方案 »

  1.   


            String s="XM='李兵' and SFZHM='3771'";
            String[] s1=s.split("and");//先按"and"分割。
            String[] s2= s1[0].trim().split("=");//再按"="分割。
            String[] s3= s1[1].trim().split("=");
            List<String> list1 = new ArrayList<String>();
            List<String> list2 = new ArrayList<String>();
            list1.add(s2[0]);
            list1.add(s3[0]);
            list2.add(s2[1].substring(1,s2[1].length()-1));//去掉"'".
            list2.add(s3[1].substring(1,s3[1].length()-1));
            for(String ss:list1)//输出。
            {
                System.out.println(ss);
            }
            for(String ss:list2)
            {
                System.out.println(ss);
            }
      

  2.   


    这个条件是不固定的,可能只有XM='李兵' 也可能是XM='李兵' and SFZHM='3771' and BH='' 怎么修改啊
      

  3.   

    解决了,谢谢啦,nmyangym哥哥
      

  4.   

    字符串比这长吗? 输出还在两个list里吗?
      

  5.   

    看看这个,比较完整代码:import java.util.*;
    public class SplitString
    {
            public static void main(String[] args)
            {
                List<List<String>> list=null;
                String s="XM='李兵' and SFZHM='3771' and BH ='yuuu' and Email= 'aa@123'";
                list = getList(s);
                for(int i=0;i<list.size();i++)
                {
                    System.out.println("list["+i+"] is:");
                    for(String ss:list.get(i))
                    {
                        System.out.println(ss);
                    }
                }
            }
    //分割字符串,放在List<List<String>>里。
    //
            public static List<List<String>> getList(String s)
            {
                String[] s1=s.split("and");
                String[] s2=null;
                List<String> list1 = new ArrayList<String>();
                List<String> list2 = new ArrayList<String>();
                for(int i=0;i<s1.length;i++)
                {
                    s2= s1[i].trim().split("=");
                    list1.add(s2[0].trim());
                    list2.add(s2[1].trim().substring(1,s2[1].length()-1));
                }
                List<List<String>> list=new ArrayList<List<String>>();
                list.add(list1);
                list.add(list2);
                return list;
           }
    }