一.StringTokenizer
1.1 StringTokenizer简介及其构造函数的三种形式:
StringTokenizer类是字符串分割解析类型,其属于java.util包,在使用之前需要 import java.util.*
StringTokenizer类一共有三种构造函数:
1.StringTokenizer(String s)该种构造函数传入指定的字符串s,然后通过StringTokenizer类对其进行分割。在该种情况下Java默认的分隔符包括 换行符"\n"、回车符"\r"、制表符"\t"、
空格" ";其中匹配分隔符都是多次匹配为准,例如s="Hello World !" 通过StringTokenizer(s)对其进行分割时,会返回"Hello"、"World"、"!"。会对字符串s中的空格作多次匹配。
2.StringTokenizer(String s , String delim)该种构造函数可以允许用户指定一个分隔符delim,通过指定的分隔符对字符串s进行分割。其中分隔符若为换行符、回车符、制表符等则不需要加转换符"\",且delim对大小写敏感。 当delim为"abc\n,\t"时,此时分割过程以a、b、c、换行符、制表符对指定字符串s进行分割。匹配到delim中的一个字符就会对s进行分割。
3.StringTokenizer(String s,String delim,boolean ReturnDelims)该构造函数是在第二种构造函数的基础上指定当匹配到分隔符时,是否在输出中显示匹配到的分隔符。
1.2 StringTokenizer的一些常用方法:
示例:StringTokenizer st = new StringTokenizer(s);
1.st.countTokens(): int 类型,表示一共将字符串s分割成多少个部分;
2.st.nextToken() = st.nextElement() : String 和 Object类型 ,表示从当前位置到下一个分隔符之间的字符;初始当前位置为字符串s的第一个字符。执行一次之后当前位置就会移到分隔符的后一位。
3.st.hasMoreTokens() = st.hasMoreElements() :boolean类型 ,表示从当前位置到结尾是否还有字符串s被分割成的部分。
4.st.nextToken(String delim): 以指定的新的delim作为分隔符返回结果。
1.3 运行结果:
1.第一种构造函数:
1 public classtest {2 public static voidmain(String[] args) {3 String s=new String("Hello World");4 StringTokenizer st = newStringTokenizer(s);5 System.out.println("Token Total :"+st.countTokens());6 while(st.hasMoreElements())7 System.out.println(st.nextToken());8 }9 }
运行结果:
2.第二种构造函数:
1 public classtest {2 public static voidmain(String[] args) {3 String s=new String("Hello World");4 StringTokenizer st = new StringTokenizer(s,"lo");5 System.out.println("Token Total :"+st.countTokens());6 while(st.hasMoreElements())7 System.out.println(st.nextToken());8 }9 }
运行结果:
3.第三种构造函数:
1 public classtest {2 public static voidmain(String[] args) {3 String s=new String("Hello World");4 StringTokenizer st = new StringTokenizer(s,"lo",true);5 System.out.println("Token Total :"+st.countTokens());6 while(st.hasMoreElements())7 System.out.println(st.nextToken());8 }9 }
运行结果: