我希望我的应用程序以字符串形式读取任何匹配项。
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..>
。如何将其转换为字符串?
答案 0 :(得分:2)
问题出在(meme == "<h1>")
。
因为等于运算符(==
)基于引用而不是值进行比较,所以这实际上是比较两个单独的字符串:meme
和"<h1>"
。相反,使用:
if(meme.equals("<h1>")){
答案 1 :(得分:1)
我认为您的代码存在问题
if(meme == "<h1>")
应该是
if(meme.equals("<h1>"))