split怎么把,
“abcd”,"abcd","sfsfd","erwrwer"
分成
abcd
abcd
sfsfd
erwrwer

解决方案 »

  1.   

    你的“”不会是中英文混排吧。如果不是String.replactAll("\"","").splet(",");
      

  2.   

    String str = "\"abc\",\"a12\",\"efg\"";
    String[] array = str.replaceAll("\"", "").split(",");

    for(String s : array){
    System.out.println(s);
    }
      

  3.   

    为什么用StingTokener,用\",\"能分出,我用(\",\"|\")  多分出一个空格。
      

  4.   


    哪里慢?replaceAll ?  
      

  5.   


    也不能说慢,只是我的这个表达式是传过来的,不能用replaceAll,
    这个地方写死了的,
    你只能通过split来处理
      

  6.   


        String str ="“abcd”,\"abcd\",\"sfsfd\",\"erwrwer\"";
        String[] names = str.replaceAll("^[“”\",,]+(?=[^“”\",,])|(?<=[^“”\",,])[“”\",,]+$","").split("[“”\",,]+");
        for(String n:names){
          System.out.println(n);
        }逗号引号
      

  7.   

    1楼是对的class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String[] arr = s.replaceAll("\"","").split(",",-1);
         for(int i=0;i<arr.length;i++)
             System.out.println(arr[i]);
          
       }
    }
      

  8.   


    不能用别的
    只做为split()的参数,写死了
      

  9.   


    那就
    StringTokenizer st = new StringTokenizer(str,"\",\"");

    while (st.hasMoreTokens()) {
             System.out.println(st.nextToken());
         }没发现你说的多空格
      

  10.   

    StringTokenizer 可以,split不行我现在要用split
      

  11.   


    只能用split ,多分出一个元素,
      

  12.   

    String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
    int length = s.length();
    int i = 0;
    List<String> list = new ArrayList<String>();
    StringBuffer sb = new StringBuffer();
    while(i<length){
    char ch = s.charAt(i);
    if(ch==','||i==length-1){
    list.add(sb.toString());
    sb = null;
    sb = new StringBuffer();
    }else{
    if(ch!=34&&ch!='“'&&ch!='”'){
    sb.append(ch);
    }
    }
    i++;
    }
      

  13.   

    需求应该是这样的,给一串字符,和一个分割符,
    你分出字符串如
    字符中       分割符    结果
    abc,abc,abc   ,        abc   abc   abc
    "abc","abc","abc"  这个分割符不会写      abc    abc   abc 
    abc!abc!abc              !            abc    abc   abc 直接调用split来处理,所以,现在我只要split的参数,这个参数如何来写。。
      

  14.   

    \",\""abc
    a12
    efg"不replaceAll没戏吧
      

  15.   

    String str = "\"abc\",\"abc\",\"abc\"";
    for (String s : str.split("\",\"|\"")) {
    System.out.println(s);
    }
    就算是用正则,前面也会多出一个空字符串的元素,你这个问题无解,因为是分割,不是查找匹配项,查找匹配项还能作一作文章,分割的话,第一个空字符串是无论如何免不了的。
      

  16.   


    class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String[] arr = s.split("\"",-1);
         for(int i=0;i<arr.length;i++)
             if(!arr[i].equals(","))
             {
                    System.out.println(arr[i]);
             }
       }
    }
      

  17.   


    class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String[] arr = s.split("\"",-1);
        // System.out.println(arr.length);
         for(int i=0;i<arr.length;i++)
             if(!arr[i].equals(",")&&!arr[i].equals(""))
             {
                    System.out.println(arr[i]);
             }
         System.out.println("---------------------------");
       }
    }
      

  18.   


    String str="abcd,abcd,sfsfd,erwrwer";
    for(String fenge :str.split(","))
    System.out.println(fenge); 输出结果如下:abcd
    abcd
    sfsfd
    erwrwer
      

  19.   


    只能用split,只要split里的分割字符串。
      

  20.   


    class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String[] arr = s.split(",|\"",-1);
          //System.out.println(arr.length);
         for(int i=0;i<arr.length;i++)
                    System.out.println(arr[i]);   }
    }
      

  21.   


    class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String[] arr = s.split("\",\"|\"\"\"|\"|,");
         System.out.println(arr.length);
         for(int i=0;i<arr.length;i++)
                    System.out.println(arr[i]);   }
    }
      

  22.   

    这个离正确又进了一步 呵呵class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String[] arr = s.split("\",\"|\"\"\"|\"|,");
         System.out.println(arr.length);
         for(int i=0;i<arr.length;i++)
                    System.out.println(arr[i]);   }
    }
      

  23.   

    如果你的需求是一串字符串输入,用“1个spilit直接得到字符串数组形式”的结果,那么此题无解。
    一种是先替换掉最前面的"然后按","split;
    另一种是按","或者"split之后抹去空的那个;
    但你好像替换和抹去动作都是禁止了。
      

  24.   


    String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         String [] t=s.split("\"|,");
         System.out.println(t.length);
         for(int i=0;i<t.length;i++)
         {
         System.out.println(t[i]);
         }
      

  25.   

    s.split("\",\"|\"");
    崩溃了,前面还有个空格
      

  26.   

    估计重写split才行了 class Test
    {
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         int len = s.split("\",\"|\"").length;
         String[] arr = new String[len-1];
         System.arraycopy(s.split("\",\"|\""),1,arr,0,len-1);
         for(int i=0;i<arr.length;i++)
                    System.out.println(arr[i]);   }
    }
      

  27.   


    import java.util.ArrayList;   
    import java.util.List;   
    import java.util.regex.Matcher;   
    import java.util.regex.Pattern;  
    class Test
    {
            public static List<String> split(String input, String regex, boolean splitChar, boolean isAfter) 
            {  
               List<String> list = new ArrayList<String>();   
               if (null == input || "".equals(input)) 
               {   
                    return list;   
               }   
               int beginIndex = 0;   
               int length = input.length();   
               Pattern pattern = Pattern.compile(regex);   
               Matcher matcher = pattern.matcher(input);   
               while (matcher.find()) 
               {   
                  int matcherStart = matcher.start();   
                  int matcherEnd = matcher.end();   
                  String ele = "";   
                  if (splitChar && isAfter) 
                  {   
                    ele = input.substring(beginIndex, matcherEnd);   
                  } 
                  else 
                  {   
                    ele = input.substring(beginIndex, matcherStart);   
                  }   
                  
                  if (splitChar) 
                  {   
                     if (isAfter) 
                     {   
                         beginIndex = matcherEnd;   
                     } 
                     else 
                     {   
                        beginIndex = matcherStart;   
                     }   
                   } 
                   else 
                   {   
                     beginIndex = matcherEnd;   
                   }    
                   if (0 == matcherStart && false == isAfter) 
                   {   
                      continue;   
                   }   
                   list.add(ele);   
                }   
               if (beginIndex < length) 
                {   
                  list.add(input.substring(beginIndex));   
                }   
              return list;   
            }   
           
            public static List<String> split(String input, String regex, boolean splitChar) 
             {   
                         return split(input, regex, splitChar, false);   
             }   
           
             public static List<String> split(String input, String regex) 
            {   
               return split(input, regex, false);   
             }   
           
      public static void main(String[] args)
      { 
         String s = "\"abcd\",\"abcd\",\"sfsfd\",\"erwrwer\"";
         /*int len = s.split("\",\"|\"").length;
         String[] arr = new String[len-1];
         System.arraycopy(s.split("\",\"|\""),1,arr,0,len-1);*/
         List l =split(s,"\",\"|\"");
        System.out.println(l);
       }
       }
       
      

  28.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str = "\"abc\",\"123\",\"你好\",\"why\",";
    String[] temp = str.split("\\p{Punct}+");
    for(int i = 0;i<temp.length;i++){
    System.out.println(temp[i]);
    }
    }
    不知道这样可以不啊?
      

  29.   

    重写split的地址:http://lizhou.javaeye.com/blog/639436
    感谢 lizhou