zoukankan      html  css  js  c++  java
  • 慎用StringTokenizer,现在应使用String类的split方法

    一般的网络程序中大量使用了StringTokenizer来分割后台传过来的字符串。但是这个class是有问题的,起码他不是按照我的想法来工作的,主要问题就是当我们定义的delimiter含有多个字符的时候,StringTokenizer认为这些字符都是delimiter,而不是这个字符串这个整体是一个delimiter 

    比如这样的代码: 
    StringTokenizer st = new StringTokenizer("mno;de9&1234;&*end"";&*");
    while (st.hasMoreTokens()) {
        System.out.println(st.nextToken());
    }
    这样的代码会发现打印出来的东西是:
    mno
    de9
    1234
    end

    这显然是不行的,所以,我们遵照JDK中的建议,使用String类本身的split方法来代替,split中可以填写一个RE,功能要强大很多,不过对EasyCluster代码的修改也是比较痛苦的。使用split的时候,由于delimiter是一个RE,所以,要注意上述使用 ;&* 作为delimiter的时候,*要解引用,因为*是RE中的关键符号。如: 

    String input = "mno;de9&1234;&*end";
    String re 
    = ";&\\*";
    String[] token_array 
    = input.split(re);
    for (int i=0; i<token_array.length; i++) {
        System.out.println(token_array[i]);
    }
  • 相关阅读:
    C语言I作业12—学期总结
    # 第一周作业
    C语言Ⅰ博客作业11
    C语言Ⅰ博客作业10
    C语言Ⅰ博客作业09
    C语言Ⅰ博客作业08
    C语言||作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
  • 原文地址:https://www.cnblogs.com/super119/p/1924538.html
Copyright © 2011-2022 走看看