sha*_*yay -5 java regex string
public class NewClass
{
public static void main(String args[])
{
System.out.println("Operation 1");
StringTokenizer st1 =
new StringTokenizer("Hello Geeks How are you", "\\s+");
while (st1.hasMoreTokens())
System.out.println(st1.nextToken());
String s = "Hello Geeks How are you";
String s1[]= s.split("\\s+");
System.out.println("Operation 2");
for( String temp : s1) {
System.out.println(temp);
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行代码后,我得到的输出为: -
Operation 1
Hello Geek
How are you
Operation 2
Hello
Geeks
How
are
you
Run Code Online (Sandbox Code Playgroud)
我不明白为什么split()和StringTokenizer()对相同的参数表现不同.
所述delim的参数new StringTokenizer(str, delim)是不正则表达式.你告诉StringTokenizer在分裂任何的\,s或者+,不是在"一个或多个空格字符".并且在你的字符串中唯一适用的字符是"Geeks"中的"s",因此字符串被分割.
如果要在空格(一个或多个)中拆分,只需使用不带参数的其他构造delim函数," \t\n\r\f"默认使用.