我目前正在尝试用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
我在哪里弄错了?