我用StringTokenizer,可是会把空的过滤掉了
如果我的字符串:
3119#*###*##10.9#*##工作
用下面的方法分隔后为变成
3119
10.9
工作三个字符串
而实际上应该是
311910.9
工作这样四个字符串了,要把空的字符也带上了。
请问我该怎么做,谢谢了.
public static String[] split(String source, String delim) {
String[] wordLists;
if (source == null) {
wordLists = new String[1];
wordLists[0] = source;
return wordLists;
}
if (delim == null) {
delim = ",";
}
StringTokenizer st = new StringTokenizer(source, delim);
int total = st.countTokens();
wordLists = new String[total];
for (int i = 0; i < total; i++) {
wordLists[i] = st.nextToken();
}
return wordLists;
}

解决方案 »

  1.   

    use split to have a try
      

  2.   

    to masse(当午)
    请一下问是否知道为什么String类的split不能对某些字符进行分裂
    如"." "|"
    我用以上分裂得到的是空串
      

  3.   

    先用split
    后用trim
    String str=new String("3119#*###*##10.9#*##工作");
    String[] wordLists=("3119#*###*##10.9#*##工作").split("*");
    for(int i=0;i<wordLists.length();i++){
       wordLists[i]=wordLists[i].trim();
    }
    return wordLists;
      

  4.   

    用\\转就好了
    比如System.out.println("a|b".split("\\|")[0])
      

  5.   

    String strSplit = "3119#*###*##10.9#*##工作";
    String[] strResult = strSplit.split("#\\*##");
    for(int i = 0; i < strResult.length; i++){
    System.out.println(strResult[i]);
    }
      

  6.   

    shan1119(大天使) ( ) 的方法我测试了,结果是:311910.9
    工作
      

  7.   

    谢谢了,这个是一个一般的写法,可以了  public static String[] vSplit(String original,String regex)
     {
      //取子串的起始位置
      int startIndex = 0;
      //将结果数据先放入Vector中
      Vector v = new Vector();
      //返回的结果字符串数组
      String[] str = null;
      //存储取子串时起始位置
      int index = 0;
      //获得匹配子串的位置
      startIndex = original.indexOf(regex);    
      //System.out.println("0" + startIndex); 
      //如果起始字符串的位置小于字符串的长度,则证明没有取到字符串末尾。
      //-1代表取到了末尾
      while(startIndex < original.length() && startIndex != -1)
      {
       String temp = original.substring(index,startIndex);
       //取子串
       v.appendElement(temp);
       //设置取子串的起始位置
       index = startIndex + regex.length();
       //获得匹配子串的位置
       startIndex = original.indexOf(regex,startIndex + regex.length());
      }
      //取结束的子串
      v.appendElement(original.substring(index ,original.length()));
      //将Vector对象转换成数组
      str = new String[v.size()];
      for(int i=0;i<v.size();i++)
      {
      str[i] = (String)v.elementAt(i);
      }   //返回生成的数组
      return str;
     }