我想将Matcher变量存储为字符串

时间:2017-10-13 05:48:43

标签: java regex

我希望我的应用程序以字符串形式读取任何匹配项。

    Scanner reader = new Scanner(System.in);
    System.out.println("Problem 1: Create a heading using h1 tag");
    String input = reader.nextLine();
    Pattern regex = Pattern.compile("<[a-z][0-9]>");
    Matcher m = regex.matcher(input);
    if(m.find()){
        String meme = m.group(0);
        System.out.println(meme);
        if(meme == "<h1>"){
            System.out.println("Found a string.");
        }
        else{
            System.out.println("No string found.");
        }
    }
    else{
        System.out.println("No closing tag.");
    }

例如我 输入<..h1..>(忽略点) 但即使我设置了meme No string found,输出仍然是== <..h1..>。如何将其转换为字符串?

2 个答案:

答案 0 :(得分:2)

问题出在(meme == "<h1>")

因为等于运算符(==)基于引用而不是值进行比较,所以这实际上是比较两个单独的字符串:meme"<h1>"。相反,使用:

    if(meme.equals("<h1>")){

答案 1 :(得分:1)

我认为您的代码存在问题

 if(meme == "<h1>")

应该是

if(meme.equals("<h1>"))