其实这个问题很复杂,首先要考虑到半角与全角的情况。我是这样想的。 1:把字符串中的全角的空格与逗号转换为半角的字符串。
2:把多个相邻的半角的空格或逗号转化为一个。
3:把字符串前后的空格与逗号去掉。
4:把字符用split()进行分隔。呵呵,想是这样么想的,但对JAVA不是很熟,请问如果实现,是否可以用正则表达式更好地来完成?如果问题解决,立即给分。

解决方案 »

  1.   

    呵呵,还是自己搞定了,以面的思路有问题。下面说一下解决的思路1:把全角的空格与逗号全替换为半角的空格与逗号
       //把全部的全角空格与逗号转换为半角空格与逗号
            mystr=mystr.replaceAll(" "," ");
            mystr=mystr.replaceAll(",",",");
    2:把半角的逗号全部转化为空格
          mystr=mystr.replaceAll(","," ");
    3:把多个相连的空格转化为一个
           mystr=mystr.replaceAll(" +"," ");
    4:去除两端的空格
            mystr=mystr.trim();
    5:进行按空格分隔
             String [] s= mystr.split("[ ,]");
            for(int i=0; i<s.length;i++)
              System.out.println(s[i]);
      

  2.   

    String str = " 1 2 3 4,  5 ,6 ";
      str = str.replaceAll("[ | |\\,]+",",");
      System.out.println(str);
      if (str.startsWith(","))
         str = str.substring(1);
      if (str.endsWith(","))
         str = str.substring(0,str.length()-1);
      String [] strResult = str.split(",");
      for (int i = 0; i<strResult.length ; ++i)
        System.out.println(strResult[i]);
      

  3.   

    是不是可以考虑用StringTokenizer,然后用ordinaryChar('x')//自定义分隔符
      

  4.   

    wingtrace(无心·无梦·无语) 不要老说别人聪明,给我写一下如何用StringTokenizer吧。呵呵,随便顶一下自己的贴。
      

  5.   

    String str = " 1 2 3 4,  5 ,6 ";
    str = str.replaceAll("[ | |\\,]+",",");
    if (str.startsWith(","))
       str = str.substring(1);
    if (str.endsWith(","))
       str = str.substring(0,str.length()-1);
    StringTokenizer token = new StringTokenizer(str ,",");
    While(token.hasMoreTokens()) {
       System.out.println(token.nextToken());
    }