关于比较java中的两个字符串并指出重复

时间:2015-04-10 23:55:09

标签: java search

好吧,让我们说秘密针是:

  2236(生化危机2参考)

如果某人输入2200 我的比赛数为2;

可是:

如果此人输入:2000或0200,或0020,或0002 结果表明它仍然匹配2个数字。

它应该只匹配2号码中的一个,但我仍然得到2的匹配数。

我目前正在使用:

if(currentPin.indexOf(secretPin.charAt(i)) != -1)

在一个循环上。

更新:

假设声明并初始化了所有必要的变量并且所有范围都已关闭

继承了匹配的代码

for (int i = 0; i < secretPin.length(); i++) { if (currentPin.indexOf(secretPin.charAt(i)) != -1) { System.out.println("Found"); match++; } }

//输出:
2236 // SECRET NUMBER显示
0002 //用户GUESS
找到了 找到了 MATCH:2 //如果USER GUESS只包含一个数字2

,则只应匹配1

2 个答案:

答案 0 :(得分:2)

假设密钥引脚和当前引脚之间的位数始终相同,这个简单的算法就可以检索匹配次数:

public static void main(String[] args) {
    String secretPin = "2236";
    String currentPin = "6322";

    int match = 0;
    for (int i = 0; i < currentPin.length(); i++) {
        if (secretPin.contains(String.valueOf(currentPin.charAt(i)))) {
            secretPin = secretPin.replaceFirst(String.valueOf(currentPin.charAt(i)), "");
            match++;
        }
    }

    System.out.println(match);

}

答案 1 :(得分:0)

&#34; if(currentPin.indexOf(secretPin.charAt(i)!= -1)&#34;正在获取一个字符,检查它是否!= -1,并传递布尔结果indexOf。你也有一个括号不匹配。由于这不会编译,更不用说产生不准确的输出了。如果你想要审查它,请粘贴你说你能运行的代码。

相关问题