Java 比较字符串与字符串值
可能重复:Java 比较字符串与字符串值,java,string,if-statement,Java,String,If Statement,可能重复: 我有一个名为DomainType的字符串,它通常保存url中的“edu、com、org..等”值。我使用if-else语句帮助检查数据类型并输出一个JOptionPane。出于某种原因,无论何时键入任何域类型,它都会为您提供最后一个选项 以下是我编写的代码片段: DomainType = URL.substring(URLlength - 3, URLlength); if (DomainType == "gov") { JOptionPane.showMessageDi
我有一个名为
DomainType
的字符串,它通常保存url中的“edu、com、org..等”值。我使用if-else语句帮助检查数据类型并输出一个JOptionPane
。出于某种原因,无论何时键入任何域类型,它都会为您提供最后一个选项
以下是我编写的代码片段:
DomainType = URL.substring(URLlength - 3, URLlength);
if (DomainType == "gov") {
JOptionPane.showMessageDialog(null, "This is a Government web address.");
}
else if (DomainType == "edu") {
JOptionPane.showMessageDialog(null, "This is a University web address.");
}
else if (DomainType == "com") {
JOptionPane.showMessageDialog(null, "This is a Business web address.");
}
else if (DomainType == "org") {
JOptionPane.showMessageDialog(null, "This is a Organization web address");
}
else {
JOptionPane.showMessageDialog(null, "This is an unknown web address type.");
}
因此,
DomainType
给我edu或com没有问题,但我认为这是我的if语句,我做得不对。要比较内容,请使用等于,而不是==
(比较引用):
要比较内容,请使用等于
,而不是=
(用于比较引用):
比较字符串时,切勿使用=
,而应使用等于。因此,与其
DomainType == "org"
使用
为什么?<代码>=
将比较引用。这意味着:内存值。对于你的弦来说,它们可能并不相等equals
将比较值,这是您想要的。在比较字符串时,切勿使用=
,而应使用equals
。因此,与其
DomainType == "org"
使用
为什么?<代码>=
将比较引用。这意味着:内存值。对于你的弦来说,它们可能并不相等equals
将比较值,这就是您想要的。另一方面,超级if可能不是最优雅的方式——抱歉,只是学究式的
.equals()方法确实是比较对象的正确方法。另一方面,mega if可能不是最优雅的方法——抱歉,只是太迂腐了
.equals()方法确实是比较对象的正确方法。我想知道,由于Java设计人员决定使用==这种方法,浪费了多少时间。。。我们可能会永远看到同样的问题出现。。。是的,这真是一个恼人的限制。哦,为什么“==”操作符对
String
的工作方式与任何其他对象不同?那太愚蠢了。。。甚至比字符串连接运算符看起来和算术加法运算符一样愚蠢。我想知道,由于Java设计人员决定使用==这种方式,浪费了多少数百万小时。。。我们可能会永远看到同样的问题出现。。。是的,这真是一个恼人的限制。哦,为什么“==”操作符对String
的工作方式与任何其他对象不同?那太愚蠢了。。。甚至比字符串连接运算符看起来与算术加法运算符相同更愚蠢。没错,比较对象引用时经常使用“==”。没错,比较对象引用时经常使用“==”。
DomainType.equals("org")