键值存储不打印键值,而是引发异常

时间:2019-05-02 18:26:30

标签: java arrays string return println

我目前正在尝试用Java和get()方法创建键值存储,因为这似乎是最简单的。现在,据我所知,方法已经设置好了,但是命令行没有显示输入键的值,而是抛出了IllegalArgumentException

我尝试过使用地图,但是由于我的任务要求使用数组,因此建议我只使用数组。

这应该是从字符串中获取值的方法,该字符串将由用户在命令行中输入。

public static String getKVP(String key){

    String gotKVP = null;

    for(int i = 0; i < KeyValuePair.key.length; i++ ) {

        if (KVSMain.scanned2.equals(KeyValuePair.key[i])) {

            gotKVP = KeyValuePair.value[i];

        }else {

        throw new IllegalArgumentException("Der eingegebene Key existiert nicht.");

        }
    }
    return gotKVP;
}

如果用户在cmdline中输入 get ,则这是应该调用getKVP()的主要方法。

static Scanner scan = new Scanner(System.in);
public static String scanned = scan.next();
public static String scanned2;

public static void KVPgot(){

    System.out.println("Bitte geben Sie den key ein, zu dem Sie den value suchen.");

    scanned2 = scan.next();

    System.out.println(KeyValueStore.getKVP(scanned2));
}

public static void main(String[] args){

    KeyValuePair.initialPopulation();

    if(scanned.equals("get")){
        KVPgot();
    }`

现在,我在另一个类中填充了两个数组,以测试键[0] = 1和值[0] =“ one”的方法。

如果我没记错的话,get方法应该向用户询问键,然后应使用该键遍历数组,并打印出与键相同的索引值。

因此,如果我键入 get ,它将要求我输入密钥。如果随后输入 1 ,则应该打印“ 一个”,而不是null。 相反,它只是打印以下内容:

    Exception in thread "main" java.lang.IllegalArgumentException: Der eingegebene Key existiert nicht.
    at KeyValueStore.getKVP(KeyValueStore.java:24)
    at KVSMain.KVPgot(KVSMain.java:15)
    at KVSMain.main(KVSMain.java:23)

   Process finished with exit code 1

我在哪里弄错了?

0 个答案:

没有答案