Java 如何使if/else语句首先读取匹配的关键字?(爪哇)

Java 如何使if/else语句首先读取匹配的关键字?(爪哇),java,if-statement,Java,If Statement,如何在聊天机器人程序中实现第一个匹配关键字的条件?下面的代码是我正在使用的当前代码: public static void firstMatchingKeyword1() { String sex; sex = JOptionPane.showInputDialog(null, "Are you a guy or woman?"); if (sex.contains("guy")) { JOptionPane.showMessageDial

如何在聊天机器人程序中实现第一个匹配关键字的条件?下面的代码是我正在使用的当前代码:

public static void firstMatchingKeyword1() {
    String sex;
    sex = JOptionPane.showInputDialog(null, "Are you a guy or woman?");
            if (sex.contains("guy")) {
        JOptionPane.showMessageDialog(null, "I am a guy too");  
            } else if (sex.contains("woman")) {
            JOptionPane.showMessageDialog(null, "I am a woman too");
    }
}
问题是,如果两个关键字都存在,我希望输出是键入的第一个关键字。
例如:如果用户键入“我是一个女人,但也是一个男人”。我希望输出的信息是“我也是一个女人”,而不是一个接一个地浏览所有的if语句

我认为您只需要添加:

if (sex.contains("guy") && (sex.indexOf("guy")<sex.indexOf("woman") || sex.indexOf("woman") == -1)) {
if(sex.contains(“guy”)和&(sex.indexOf(“guy”)是您的朋友

返回指定子字符串第一次出现的字符串内的索引,从指定索引开始

if(sex.indexOf(“guy”)>0&&sex.contains(“guy”)&&(sex.indexOf(“guy”)可用于此功能。此函数:

返回此字符串中第一次出现的 指定的子字符串

int posGuy=sex.indexOf(“guy”);
int posWoman=sex.indexOf(“女性”);
如果(posGuy>=0&&posWoman>=0){
if(posGuy=0){
//家伙
}
else if(posWoman>=0){
//女人
}

值得注意的是,这是一个区分大小写的搜索,因此您可能希望在搜索之前将输入转换为小写,以便与“Guy”、“Guy”、“Guy”等匹配。

老实说,我个人并不了解您的问题:),但我也不是否决您问题的人:D@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ 你是正确的:)并且必须有另一个检查:| | sex.indexOf(“woman”)=-1是的。缺少另一个条件,但这没关系。OP应该从那里开始。就是这样。投票:)如果字符串包含“guy”而不是“woman”,这将不会打印任何内容。@Michael现在应该没事了。
if (sex.indexOf("guy") > 0 && sex.contains("guy") && (sex.indexOf("guy")<sex.indexOf("woman") || 
 sex.indexOf("woman") == -1)) {

{
     JOptionPane.showMessageDialog(null, "I am a guy too");  
} else if (sex.contains("woman")) {
     JOptionPane.showMessageDialog(null, "I am a woman too");
}
int posGuy   = sex.indexOf("guy");
int posWoman = sex.indexOf("woman");

if (posGuy >= 0 && posWoman >= 0) {
    if (posGuy < posWoman) {
        //guy before woman
    }
    else {
        //woman before guy
    }
}
else if (posGuy >= 0) {
    // guy
}
else if (posWoman >= 0) {
    // woman
}