Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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,我正在做一个项目,看看你们是否能说出美国各州的首都和州对。我想要的是,我有一个计时器,用户输入所有状态和大写字母作为State-capital映射。但是当我创造它的时候。我看到用户只需输入相同的状态和资本50次,他/她就会得到50/50的分数。我用数组表示州和首都 import java.util.Scanner; public class Exam { public void exam() { String state[] = {"alabama", "alaska", "ark

我正在做一个项目,看看你们是否能说出美国各州的首都和州对。我想要的是,我有一个计时器,用户输入所有状态和大写字母作为
State-capital
映射。但是当我创造它的时候。我看到用户只需输入相同的状态和资本50次,他/她就会得到50/50的分数。我用数组表示州和首都

import java.util.Scanner;

public class Exam {

public void exam() {

    String state[] = {"alabama", "alaska", "arkansas", "california", "colorado", "connecticut", "delaware", "florida", 
        "Georgia","Hawaii", "Idaho",  "illinois", "indiana", "iowa", "kansas", "Kentucky", "louisiana", "maine", "maryland", 
        "massachusetts", "michigan", "minnesota", "mississippi", "missouri", "montana", "nebraska", "nevada", "new Hampshire",
        "new Jersey", "new mexico", "new york","north carolina", "north dakota", "ohio", "oklahoma", "oregon", "pennsylvania", 
        "Rhode island", "South carolina", "south dakota", "tennessee", "Texas", "utah", "vermont", "virginia", "washington",
        "west Virginia", "wisconsin", "wyoming"};
    String capital[] = {"montgomery", "juneau", "phoenix", "little Rock", "sacramento", "denver", "hartford", "dover", "tallahassee",
        "atlanta", "honolulu", "boise", "springfield", "indianapolis", "des moines", "topeka", "frankfort", "baton rouge",
        "augusta", "annapolis", "boston", "lansing", "st. paul", "jackson", "jefferson city", "Helena", "lincoln",
        "carson city", "concord", "trenton", "santa Fe", "albany", "raleigh", "bismarck", "Columbus", "Oklahoma city",
        "salem", "harrisburg", "providence", "columbia", "pierre", "nashville", "austin", "salt lake city", "montpelier",
        "richmond", "olympia", "charleston", "madison", "cheyenne"};

    int y = 0;

    String ad = " - ";

    String input;
    Scanner s = new Scanner(System.in);
    System.out.println("Start writing states and capitals [State - capital] (type stop to stop)");

    input = s.next().toLowerCase();

    for(int x = 0; x < 50; x++) {
        input = s.next().toLowerCase();
        if(input == state[0] + ad + capital[0]) {
            System.out.println("Correct");
            y++;
        } else { 
            System.out.println("wrong");
        }
    }

}
}
import java.util.Scanner;
公开课考试{
公开考试(){
字符串州[]={“阿拉巴马州”、“阿拉斯加州”、“阿肯色州”、“加利福尼亚州”、“科罗拉多州”、“康涅狄格州”、“特拉华州”、“佛罗里达州”,
“乔治亚州”、“夏威夷州”、“爱达荷州”、“伊利诺伊州”、“印第安纳州”、“爱荷华州”、“堪萨斯州”、“肯塔基州”、“路易斯安那州”、“缅因州”、“马里兰州”,
“马萨诸塞州”、“密歇根州”、“明尼苏达州”、“密西西比州”、“密苏里州”、“蒙大拿州”、“内布拉斯加州”、“内华达州”、“新罕布什尔州”,
“新泽西州”、“新墨西哥州”、“纽约州”、“北卡罗来纳州”、“北达科他州”、“俄亥俄州”、“俄克拉荷马州”、“俄勒冈州”、“宾夕法尼亚州”,
“罗德岛州”、“南卡罗来纳州”、“南达科他州”、“田纳西州”、“德克萨斯州”、“犹他州”、“佛蒙特州”、“弗吉尼亚州”、“华盛顿州”,
“西弗吉尼亚州”、“威斯康星州”、“怀俄明州”};
字符串大写[]={“蒙哥马利”、“朱诺”、“凤凰城”、“小石城”、“萨克拉门托”、“丹佛”、“哈特福德”、“多佛”、“塔拉哈西”,
“亚特兰大”、“火奴鲁鲁”、“博伊西”、“斯普林菲尔德”、“印第安纳波利斯”、“得梅因”、“托皮卡”、“法兰克福”、“巴吞鲁日”,
“奥古斯塔”、“安纳波利斯”、“波士顿”、“兰辛”、“圣保罗”、“杰克逊”、“杰斐逊城”、“海伦娜”、“林肯”,
“卡森城”、“康科德”、“特伦顿”、“圣达菲”、“奥尔巴尼”、“罗利”、“俾斯麦”、“哥伦布”、“俄克拉荷马城”,
“塞勒姆”、“哈里斯堡”、“普罗维登斯”、“哥伦比亚”、“皮埃尔”、“纳什维尔”、“奥斯汀”、“盐湖城”、“蒙彼利埃”,
“里士满”、“奥林匹亚”、“查尔斯顿”、“麦迪逊”、“夏延”};
int y=0;
字符串ad=“-”;
字符串输入;
扫描仪s=新的扫描仪(System.in);
System.out.println(“开始写入状态和大写字母[State-capital](键入stop-to-stop)”;
输入=s.next().toLowerCase();
对于(int x=0;x<50;x++){
输入=s.next().toLowerCase();
如果(输入==状态[0]+ad+资本[0]){
系统输出打印项次(“正确”);
y++;
}否则{
System.out.println(“错误”);
}
}
}
}

使用哈希映射而不是数组。关键可以是国家,价值可以是国家的资本

HashMap<String,String> map=new HashMap<>();  
map.put("Texas","Austin");

如果您以前从未实现过HashMaps,请参阅。

另一种方法是将正确的x值添加到集合中(无重复),然后查看其大小是否为50

你的问题是什么?谢谢你的帮助,我会看看这是否有效,但是我需要创建多个Hashmap,或者我可以把所有的都放在同一个map中吗?我不知道你的意思,我从来没有使用过Hashmap,但我读过它们,但我不明白我应该做什么?1个Hashmap就足够了。如果要重复该键,则需要多个。在你的例子中,因为州名是关键,所以它永远不会被重复。HashMap=newHashMap();地图放置(“德克萨斯州”、“奥斯汀”);地图。放(“加利福尼亚”,“萨克拉门托”)。。。哈希映射使用哈希,因此它们有O(1)个访问时间。当用户输入一个州名时,说“X”,对应的大写名为“Y”,检查:if(map.get(“X”).equals(“Y”){//increase score map.remove(“X”)}
map.remove("Texas");