Java 模式识别
所以我的代码完成了,但现在我需要它来打印出所选的数字是否相等 我做了一个FALSE/数字相等的循环,但它不能正常工作。 希望你能帮忙。 我的代码如下所示: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;
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,我最近在书中读到了这一点,并尝试了一下!因此,我请求一些帮助,例如代码等^^^因此我不太确定如何进行哈希设置,请您举个例子好吗?:)@丹尼尔,如果它有效,考虑接受它。这让我更快乐,也更愿意帮忙:)