有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java非法转义字符netbeans

我有一个编程作业,要求代码是单行(最短代码)。我做到了,但出于某种原因,我得到了错误“非法逃逸字符”。有人说,它在eclipse中不会做同样的事情。然而,我必须提交NetBeans项目

这是我的代码:

public class ShortestCode {
    public static void main(String[] args) {
        System.out.println(JOptionPane.showInputDialog("Enter your email address").matches(".*@.*\..*") ? "Address Appears Valid" : "Address is Invalid");
    }
}

我该怎么做才能让NetBeans IDE接受它?所有的错误都是“非法逃逸角色”不提供任何其他提示


共 (2) 个答案

  1. # 1 楼答案

    单点需要双斜杠来转义字符

    "Enter your email address").matches(".*@.*\\..*")
    
  2. # 2 楼答案

    这就是问题所在:

    matches(".*@.*\..*") 
    

    我猜你想要一个正是这种模式的正则表达式:

    .*@.*\..*
    

    但您将其作为Java字符串文字编写,因此需要避开反斜杠:

    matches(".*@.*\\..*") 
    

    编译器正在抱怨,因为\.不是有效的转义序列