【发布时间】:2021-01-10 06:20:21
【问题描述】:
我有一个字符串,String url = "www.public.website.edu/~JohnSmith/JAVA000";。我的目标是使用分隔符来获得所需的输出,如下所示。
我确实有点得到了输出,但似乎打印了额外的一行,我不完全确定它来自哪里。
代码:
public static void main(String[] args) {
String url = "www.public.website.edu/~JohnSmith/JAVA000";
Scanner scan = new Scanner(url);
scan.useDelimiter("[./~]");
while (scan.hasNext()) {
System.out.println(scan.next());
}
实际:
www
public
website
edu
JohnSmith
JAVA000
预期:
www
public
website
edu
JohnSmith
JAVA000
我不完全确定我的正则表达式语法哪里出错了。
【问题讨论】:
-
它似乎在打印空字符串,因为这是两个分隔符 / 和 ~ 之间的值。可能更容易使用 Guava 拆分器:
Splitter.onPattern("[./~]").omitEmptyStrings().split("www.public.website.edu/~JohnSmith/JAVA000")
标签: java regex string java.util.scanner