Java中关于正则表达式中的空格匹配问题,看图

上代码:

import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
System.out.println("请输入点坐标");
String check = new String("^\\w\\s\\w$"); //匹配1 2
Scanner scan = new Scanner(System.in);
String input = new String(scan.next());
if(input.matches(check)) {
System.out.println("是点");
} else {
System.out.println("不是点");
}
}
}

我输入1 2不是应该符合\\w\\s\\w的吗,为什么返回值是false呢

第1个回答  2013-10-03
因为读入的input是“1”,不是“1 2”。
你可以在String input = new String(scan.next());这句下加一句System.out.println("input:" + input);试试。
你可以把“1 2”写到一个文本文档里面然后读出来,或者直接写String a = “1 2”;来匹配。
第2个回答  2013-10-03
因为你输入的是1空格2,在java里,scan.next()是以空格为结束的,你的input值是1,所以不符合要求。你应该改成nextLine(),这样读取一整行。本回答被提问者采纳
相似回答