摄影作品网站风景,赤城seo网站优化排名,电子商务网站建设 实验,网站转化率低的原因StringTokenizer#xff1a; 熟悉的分解对象#xff0c;有 String 类的 split() 方法#xff0c;而与它不同的是#xff0c;StringTokenizer 对象是不使用正则表达式作为分隔标记的#xff0c;通过本次的学习#xff0c;来使用 StringTokenizer 对象进行对 String 对象的…StringTokenizer 熟悉的分解对象有 String 类的 split() 方法而与它不同的是StringTokenizer 对象是不使用正则表达式作为分隔标记的通过本次的学习来使用 StringTokenizer 对象进行对 String 对象的字符序列分解。
1、StringTokenizer的常用构造方法 当分析一个 String 对象的字符序列并将其分解成可被独立使用的单词也叫语言符号时可以使用 java.util 包中的 StringTokenizer 类该类有两个常用的构造方法 StringTokenizer(String s)为 String 对象 s 构造一个分析器使用默认的分隔标记空格、换行、回车、Tab等符号 StringTokenizer(String s, String delim)为 String 对象 s 构造一个分析器参数 delim 的字符序列中的字符的任意排列被作为分隔标记。
StringTokenizer a new StringTokenizer(Go All Out!);
// 分隔出三个单词Go、All、Out!StringTokenizer a1 new StringTokenizer(Go!_!All_!Out!,_!);
// 以_!的任意排列为分隔标记分隔出三个单词Go、All、Out
2、nextToken()获取分析器中的一个语言符号 以一个 StringTokenizer 对象称为一个字符串分析器一个分析器可以使用 nextToken() 方法逐个获取 String 对象的字符序列中的语言符号每单调用 nextToken() 时都会获取 String 对象的字符序列中的一个语言符号每获取一个语言符号字符串分析器中负责计数的变量的值就会自动减1该计数变量的初始值就等于获取的语言符号的数量。
3、hasMoreToken()获取分析器中的计数变量的值 获取语言符号时通常采用while循环进行逐个获取但为了控制循环可使用 StringTokenizer 类中的 hasMoreToken() 方法只要字符序列中还有语言符号即计数变量的值大于0那么该方法就会返回 true 否则返回 false 。
举例
StringTokenizer a new StringTokenizer(Go All Out!);// 分隔出三个单词Go、All、Out!
StringTokenizer a1 new StringTokenizer(Go!_!All_!Out!,_!);// 以_!的任意排列为分隔标记同样分隔出三个单词Go、All、OutSystem.out.println(a.countTokens());
while (a.hasMoreTokens()){System.out.print(a.nextToken());
}System.out.println();System.out.println(a1.countTokens());
while (a1.hasMoreTokens()){System.out.print(a1.nextToken());
}
结果 Scanner
1、useDelimiter()正则表达式进行分隔字符序列 当使用 Scanner 对象进行解析字符序列中的语言符号时可以使用 useDelimiter(正则表达式) 方法将正则表达式作为分隔标记Scanner 对象默认用空白字符空格、制表符、回车作为分隔标记来解析 String 对象的字符序列中的语言符号。
2、next()依次返回被解析的字符序列中的语言符号
如果最后一个语言符号已被 next() 返回Scanner 对象调用 hasNext() 将返回 false 否则返回 trueScanner 对象可以调用 nextInt() 或 nextDouble() 方法来代替 next() 方法来将数字型语言符号转化为 int 或 double 型数据返回如果获取的不是数字型语言符号调用 nextInt() 或 nextDouble() 方法将发生 InputMismatchException 异常处理异常时可以调用 next() 方法返回非数字语言符号。
举例
Scanner scanner new Scanner(Go All Out!123);
scanner.useDelimiter([0-9! ]);
double sum 0;
int sum1 0;// 分隔出三个单词Go、All、Out!
while (scanner.hasNext()){try {double num scanner.nextDouble();System.out.println(num);sum num;} catch(InputMismatchException e){System.out.println(scanner.next());sum1 ;}}System.out.println(sum1);
结果 StringTokenizer 与 Scanner 的区别 1、StringTokenizer 类把分解出的全部单词都存放到 StringTokenizer 对象的实体中因此能较快速度的获得语言符号即占用较多的内存空间换取速度 2、Scanner 类不把单词存放到对象当中而是仅仅存放怎么获取语言符号的分隔标记因此 Scanner 对象获得语言符号的速度相对较慢即节省内存空间速度换取空间。