【问题标题】:How do I compare two instances of user input in Java? [duplicate]如何比较 Java 中用户输入的两个实例? [复制]
【发布时间】:2011-08-07 07:56:40
【问题描述】:

上周我们进行了一次编程考试,但我没能通过。

我们被要求制作一个程序,要求用户选择以下三个选项之一:

  • 名字
  • 中间名
  • 姓氏。

选择后,系统会要求您使用扫描仪输入名称。

然后它会问你是否想再试一次,如果你输入yes,程序会再次循环,如果你输入相同的名字,它会提示错误,说你已经设置好了。

除了比较值的那一部分,我已经完成了所有的工作。

如何使用扫描仪比较第一个和第二个输入?

这是我到目前为止所做的。


public class PXM {
    private String givenname;
    private String middlename;
    private String lastname;

    public void setGN(String gn) {
        this.givenname = gn;
    }
    public void setMN(String mn) {
        this.middlename = mn;
    }
    public void setLN(String ln) {
        this.lastname = ln;
    }
    public boolean equals() {
    }
}

import java.util.*;

public class TestPXM {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String yes;
        int t;

        PXM p1 = new PXM(); {
            System.out.println("1. given name ");
            System.out.println("2. middle name");
            System.out.println("3. last name");

            System.out.print("select method: ");
            int method = sc.nextInt();
            if (method == 1) {
                System.out.println("enter given name: ");
                String gn = sc.next();
                p1.setGN(gn);
            }
        }
    }
}

【问题讨论】:

  • 到目前为止你做了什么?你能给我们看一些代码吗?我们不会为您编码。
  • 一些代码必须有帮助
  • 好吧抱歉,我发布了我的代码

标签: java java.util.scanner


【解决方案1】:

您不使用扫描仪进行比较。您将保存输入的值并与这些值进行比较。

我会使用 Set 来保存值,因为 Set 值保证是唯一的,并且适合应用程序。您可以使用Set.contains() 来查找您是否已经有了名字。

【讨论】:

  • 或者使用 if(Set.add()) 所以如果它是唯一的,它已经添加在一行中,如果不是,你可以在 else 中使用递归,或者在那里处理它
  • 我没有说使用扫描仪进行比较。我说,我想比较使用扫描仪输入的值。
【解决方案2】:

假设您有两个字符串,s1s2,并且您想比较它们,您应该使用 equals() 方法:

if (s1.equals(s2)) {
    // strings are the same
} else {
    // strings are different
}

如果您不知道如何使用 Scanner,请查看here

【讨论】:

    【解决方案3】:

    你可以使用这个: 由于您已经在以下位置设置了变量:

    p1.setGN(gn);
    

    您可以在适当的提示后再次读取输入,例如:

    String gn=sc.next();
    

    然后使用getter方法比较对象p1中存储的变量:

    public String getGN()
    {
    return this.givenname;
    }
    

    如果你这样做了

    if(gn.equals(p1.getGN())
    {
    System.out. println("You have already set that");
    }
    

    你会得到想要的结果。

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 2012-10-19
      • 2012-09-15
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      相关资源
      最近更新 更多