Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模式识别_Java - Fatal编程技术网

Java 模式识别

Java 模式识别,java,Java,所以我的代码完成了,但现在我需要它来打印出所选的数字是否相等 我做了一个FALSE/数字相等的循环,但它不能正常工作。 希望你能帮忙。 我的代码如下所示: package patternrecognition; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.TreeMap;

所以我的代码完成了,但现在我需要它来打印出所选的数字是否相等

我做了一个FALSE/数字相等的循环,但它不能正常工作。 希望你能帮忙。 我的代码如下所示:

package patternrecognition;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeMap;

public class PatternRecognition {

    public static void main(String[] args) throws Exception {



        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));


        int AntalNumre = -1;

        boolean Gyldignummer = false;
        while (Gyldignummer == false) {
            System.out.print("\n\nIndtast antal numre: ");

            String numre = reader.readLine().trim();

            Gyldignummer = validInteger(numre);

            if (Gyldignummer == false) {
                System.out.println("Indtast et gyldigt nummer");
            } else {

                AntalNumre = Integer.parseInt(numre);
            }

        }


        HashMap vaerdier = new HashMap();

        for (int i = 0; i < AntalNumre; i++) { //Studerendes nummer(i+1)

            boolean GyldigNummer2 = false;

            while (GyldigNummer2 == false) {
                System.out.print("\n\nIndtast en vaerdi for nummer " + (i + 1) + ": ");

                String vaerdi = reader.readLine().trim();
                int vaerdien = -1;

                GyldigNummer2 = validInteger(vaerdi);
                if (GyldigNummer2 == false) {
                    System.out.println("Indtast et gyldigt nummer");
                } else {

                    vaerdien = Integer.parseInt(vaerdi);
                }
                vaerdier.put(vaerdi, new Integer(vaerdien));
            }
        }



        TreeMap SorteretNummer = new TreeMap(vaerdier);

        Iterator nr = SorteretNummer.keySet().iterator();

        System.out.println("\n\n\n\n\n");
        System.out.println("Numre valgt:");
        System.out.println("------------");


        while (nr.hasNext()) {

            String navn = (String) nr.next();


            int numre = ((Integer) SorteretNummer.get(navn)).intValue();

            System.out.println("" + numre);

            if (numre != numre) {
                System.out.println("FALSE");
            }
            else {
                System.out.println("ALLE THE NUMBERS ARE EQUAL");
            }

        }
    }

    public static boolean validInteger(String nummer) {
        boolean validInteger = false;


        try {
            Integer.parseInt(nummer);
            validInteger = true;
        } catch (NumberFormatException nfe) {
            validInteger = false;
        }
        return validInteger;

    }
}
封装模式识别;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.util.HashMap;
导入java.util.Iterator;
导入java.util.TreeMap;
公共类模式识别{
公共静态void main(字符串[]args)引发异常{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(System.in));
int AntalNumre=-1;
布尔Gyldignummer=false;
while(Gyldignummer==false){
System.out.print(“\n\nNindast antal numre:”);
字符串numre=reader.readLine().trim();
Gyldignummer=validInteger(numre);
如果(Gyldignummer==false){
系统输出打印(Indtast et gyldigt nummer);
}否则{
AntalNumre=Integer.parseInt(numre);
}
}
HashMap vaerdier=新的HashMap();
对于(inti=0;i
这是一个问题:

if (numre != numre) {
    System.out.println("FALSE");
}
else {
    System.out.println("ALLE THE NUMBERS ARE EQUAL");
}
将同一变量与自身进行比较:将始终打印“所有数字都相等”

编辑:

记住以前输入的
整数
,并与最近输入的
整数
进行比较。使用
Integer
并将
previousInt
初始化为
null
,这样可以避免在初始循环迭代时进行比较。
由于这是家庭作业,我不会发布代码,如果您自己编写代码,将对您更有好处。

好吧,
numre!=numre
必然是
false
,当然,除非
numre
碰巧在另一个线程中发生了更改(或者是
NaN
,但情况不同)

也许,您可能想要比较成对的数字?或者,您希望有一个数据结构来保存您已经看到的数字(例如,
HashSet
BitSet

例如:当用户输入数字时,将其保存到
哈希集
。他一做完,就加上

Set<Integer> set = new hashSet<Integer>();

// ...as we're getting numbers from user

   set.add(numre);

// ...

if (set.size() == 1) 
    System.out.println("OMG they're all the same! " + set);
Set Set=newhashset();
//…当我们从用户那里得到数字时
set.add(numre);
// ...
if(set.size()==1)
System.out.println(“天哪,它们都一样!”+set);

那么,有什么问题?或者我应该说,være et的同步器问题?如果我没有说清楚,我很抱歉。正如您在代码的底部看到的,就在我制作的“if(numre!=numre”){print false}else{all the numbers…}的“validInteger”之前。但它并没有检查所有的数字。它只打印1个数字,然后打印“所有数字都是…”然后打印2个数字,然后打印“所有数字都是…”等等。我不知道如何让它检查您可以输入的数字。“但它工作不正常”对我来说似乎不清楚。如果你能描述出到底出了什么问题,那就容易多了。丹麦语的评论有点烦人,因为它们发生了,而且没有帮助,但缺乏问题描述就扼杀了这个问题。是的,我已经想到了这一点。但这是正在打印的数字,所以我不知道如何比较所有的数字?您选择的号码将被输入“numre”并打印。这不像我有一个数组来保存数字并比较它们。有什么想法吗?:)@丹尼尔:嗯,呃,找一个数组来保存这些数字,也许可以比较一下?:)创建一个
ArrayList
来存储它们。如果您需要将列表中的每个
整数
与每个其他
整数
进行比较,那么您可以使用嵌套的
进行
循环,记住不要比较相同的
整数
。您可以给我一个示例,说明如何在我的代码中对其进行编码?:)@丹尼尔,你需要检查所有输入的数字是否相等吗?如果是这样,只需记住上一个整数并将其与当前整数进行比较。不需要任何集合。你说得对,这是我的家庭作业:)但实际上我们还没有了解TreeMap、HashMap、BufferedReader og HashSet,我最近在书中读到了这一点,并尝试了一下!因此,我请求一些帮助,例如代码等^^^因此我不太确定如何进行哈希设置,请您举个例子好吗?:)@丹尼尔,如果它有效,考虑接受它。这让我更快乐,也更愿意帮忙:)