【发布时间】:2017-10-05 18:41:03
【问题描述】:
当标签被发现时,我正在尝试使用正则表达式来拆分字符串。
我用过这个:
String line = scan.nextLine(); String Splitted[] = line.split("\t");
但它不起作用,所以目前我正在使用(这对我有用):
String line = scan.nextLine(); String Splitted[] = line.split("\\s\\s\\s\\s");
你们知道为什么我不能使用“\t”正则表达式吗?
【问题讨论】:
-
你应该使用 \\t 而不是 \t 另外你可以使用 \\t+
-
那么你的字符串中没有制表符。不需要使用
"\\t","\t"是匹配单个文字选项卡的有效正则表达式模式。"\\s\\s\\s\\s"很可能是因为输入行中有 4 个连续的空格。 -
"abc\tdef".split("\t")工作得非常好 - 你的字符串中可能没有标签(\t) -
你可以用
\t代替\\s+ -
您的正则表达式应该可以工作,所以问题可能出在您的输入上。在此循环中,标签应打印为
9。他们是吗?for (int i = 0; i < line.length(); i++) { System.out.println((int) line.charAt(i)); }