我正在制作一个简单的媒人作为JAVA的学习项目。到目前为止,我的计划只是提出几个问题,但我想做性别问题,所以我询问了他们的性别(m或f)然后尝试添加一条信息,只显示性别是m。对话框应该说“做得好,你是男性!”。否则重启方法。每次,无论我输入什么,它都会重新启动程序。
这是我的代码:
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args){
setVars();
}
public static void setVars(){
String name = JOptionPane.showInputDialog(null, "What is your name?");
String sAge = JOptionPane.showInputDialog(null, "What is your age?");
String sex = JOptionPane.showInputDialog(null, "What is your sex?\n(Enter m or f)");
if (sex == "m"){
JOptionPane.showMessageDialog(null, "Well done, you are male.\nKeep Going!");
}
int age = Integer.parseInt(sAge);
String chars = JOptionPane.showInputDialog(null, "Name three charectaristics");
}
}
答案 0 :(得分:1)
试
if ( "m".equalIgnoreCase(sex))
你应该使用equals比较字符串值和==来检查它们的引用
答案 1 :(得分:1)
您的代码应为:
if ("m".equals(sex)) {
//
}
==比较对象的地址/引用
.equals比较对象的值
答案 2 :(得分:1)
在Java中,您不会将字符串与==
进行比较,您必须将它们与equals()
上的String
方法进行比较。 String有两种此方法的变体:equals()
,区分大小写,equalsIgnoreCase()
,不区分大小写。在下面的示例中,您可以使用其中任何一个。
试试这个:
if(sex.equalsIgnoreCase("m") {
...
}
或防止空值......
if("m".equalsIgnoreCase(sex)) {
...
}
答案 3 :(得分:0)
因为String
是一个对象,而不是int
这样的数据类型,在比较两个字符串时,它是由.equals()
方法完成的:
package example;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args){
setVars();
}
public static void setVars(){
String name = JOptionPane.showInputDialog(null, "What is your name?");
String sAge = JOptionPane.showInputDialog(null, "What is your age?");
String sex = JOptionPane.showInputDialog(null, "What is your sex?\n(Enter m or f)");
if (sex.equals("m")){
JOptionPane.showMessageDialog(null, "Well done, you are male.\nKeep Going!");
}
int age = Integer.parseInt(sAge);
String chars = JOptionPane.showInputDialog(null, "Name three charectaristics");
}
}