StringTokenizer && Java String.split() 简介

StringTokenizer类:

根据自定义字符为分界符进行拆分,并将结果进行封装提供对应方法进行遍历取值, StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释;该方法用途类似于split方法,只是对结果进行了封装;

API文档对StringTokenizer进行了说明:StringTokenizer 是出于兼容性的原因而被保留的遗留类。(现在不怎么使用它了,建议使用 Stringsplit 方法)

     构造器:
     · public StringTokenizer(String str,String delim,boolean returnTokens);
     · public StringTokenizer(String str,String delim);
     · public StringTokenizer(String str);
     其中,str为需分析的字符串,delim为定界符,定界符里面的任何一个字符都是分隔符,如"+-*/   "表示碰到"+-*/   "中的任何一个都认为是到达了分隔符了。  
     常用的方法有:
     · public boolean hasMoreTokens(); //判断字符串中是含还有token
     · public String nextToken(); //StringTokenizer对象中的下一个token。
     · public String nextToken(String delim) //delim为新的定界符

       public boolean hasMoreElements ()

StringTokenizer (Java Platform SE 6)

      public Object nextElement ()  //除返回结果类型外,其返回与 nextToken 方法相同的值

在例中,使用StringTokenizer类将字符串“hello,java,delphi,asp,php”分解为三个单词。 


 【例】
     impoort java.util.*;
        public class StringTokenizer Demo
        {
              public static void main(String[] args)
              {
                  String str=" hello,java,delphi,asp,php";
                  StringTokenizer st=new StringTokenizer(str,",");
                  while(st.hasMoreTokens()) {
                      System.out.println(st.nextToken());
                  }
              }
          }
    程序的运行结果为:
          hello
          java
         delphi
         asp

         php

Java String.split()

Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回。对于分割的字符(串),通常是常见,普通的,没什么问题;

但是对某些特殊字符,如果字符(串)正好是“正则”的一部分,则需要转义才能使用, 所以如果想用该字符本身, 这些字符需要进行转义才能表示它本身;例如: 

想用 | 竖线去分割某字符,因 | 本身是正则表达式中的一部分,所以需要 去转义,因转义使用 \, 而这个 正好也是正则表达式的字符,所以还得用一个 , 所以需要两个 \。

1、如果用“.”作为分隔的话,必须是如下写法,String.split("\."),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法,String.split("\|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"\";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");

例子:    

String[] aa = "aaa|bbb|ccc".split("|");

//String[] aa = "aaa|bbb|ccc".split("\|"); 这样才能得到正确的结果


    for (int i = 0 ; i <aa.length ; i++ ) {

      System.out.println("--"+aa[i]);

    }

原文地址:https://www.cnblogs.com/zhaoby451/p/7606975.html