我正在尝试验证HTML中的字符串位置作为我的Java程序内部的标记,这样如果有人更改HTML标记字符串,我的Java程序会检查字符串是否是我写的。
这是我的java ...
public void init()
{
String name = getParameter("author");
String course = getParameter("class");
if (name == "goes here")
JOptionPane.showMessageDialog (null, "Good, it will setVisible(true)", "Library System", JOptionPane.WARNING_MESSAGE);
if (name != "goes here")
JOptionPane.showMessageDialog (null, "NOT good and will setVisible(false)", "Library System", JOptionPane.WARNING_MESSAGE);
Container contain = getContentPane();
contain.add(new LibraryPanel(name, course));
setVisible(true);
}
这是我的HTML ...
<html>
<body>
<applet code=3.LibraryFrame.class width=650 height=700>
<param name=author value="goes here">
<param name=class value="className">
</applet>
</body>
</html>
因此,当我的HTML标记中的字符串正确时,它始终表示它不匹配。我甚至已经将名称和课程变量放在我的showMessageDialog中并匹配。
有关为何未正确验证的任何想法?
答案 0 :(得分:3)
始终将字符串与equals()
进行比较,绝不与==
进行比较。
可能是
if ("David Duke".equals(name))
因为==
比较了参考数据类型的引用。
此外,您可以删除第二个if
语句并使用else
。
答案 1 :(得分:3)
if (name == "David Duke")
切勿在Java中使用==
或!=
来比较字符串。请改用equals()
:
if (name.equals("David Duke"))
请注意==
检查左侧和右侧的两个参数是否指向完全相同的对象 - 它不检查两个对象的内容是否相同