忽略StringTokenizer上的特殊字符java
问题描述:
我想忽略使用字符串标记器的特殊字符,如, " ; :
。 例如,如果我输入:忽略StringTokenizer上的特殊字符java
He said, "That's not a good idea."
输出应该是:
He
Said
that
s
not
a
good
idea
这是我当前的代码
class Q_03
{
public static void main(String[] argv)
{
System.out.print("Enter text to break :- ");
Scanner sc = new Scanner(System.in);
String x = sc.nextLine();
StringTokenizer url = new StringTokenizer(x, " ");
while(url.hasMoreTokens())
{
System.out.println(url.nextToken());
}
}
}
答
你可以regex
这样的替换特殊字符:
class Q_03 {
public static void main(String[] argv) {
System.out.print("Enter text to break :- ");
Scanner sc = new Scanner(System.in);
String x = sc.nextLine().replaceAll("[|;:,'\"]", " ");
StringTokenizer url = new StringTokenizer(x, " ");
while (url.hasMoreTokens()) {
System.out.println(url.nextToken());
}
}
}
你可以添加到这个正则表达式"[;:,'\"]"
任何你想要的符号,但一些特殊的符号(如"
)必须已经用反斜杠\"
逃脱。
考虑使用['String#split'](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-)正则表达式。 – bradimus