String s1="111|222||333";
使用StringTokenizer不能将空""取出,又什么好办法?

解决方案 »

  1.   

    不是太明白你说的什么问题,也许用Scanner可以吧。
      

  2.   

    java.util.StringTokenizer 的 API 文档说明:StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。
    建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
    split 把间隔分开的字符串用数组保存起来。使用 split 的方法如下,可以保留分隔后空的字串:public class Test {
        public static void main(String[] args) {
            String str = "111|222||333";
            String[] ss = str.split("\\|");
            for(String s : ss) {
                System.out.println(s);
            }
        }
    }如果需要像 StringTokenizer 不保留空的字符串,可以改为:public class Test {    public static void main(String[] args) {
            String str = "111|222||333";
            String[] ss = str.split("\\|+");  // 加上一个“+”就可以了
            for(String s : ss) {
                System.out.println(s);
            }
        }
    }