我正在嘗試使用用戶輸入的字符串在二維數組中找到一個數組。但是,我一直得到「字符串[] []不能轉換爲字符串」錯誤。我可以用鍵盤掃描儀和字符串來做到這一點,還是有更合理的解決方案來解決這個問題。是否可以將字符串與2D數組中的數組名稱進行比較?
import java.util.Scanner;
public class QandA{
public static void main(String[] args){
String entry;
String[] Why = new String[]{"Because.", "Just Because.", "Why yourself."};
String[][] Questions = new String[][] { Why };
Scanner k = new Scanner(System.in);
entry = k.next();
for (int i=0 ; i < Questions.length ; i++){
if (entry.equalsIgnoreCase(Questions)){
System.out.println("Test");
break;
}
if (i == Questions.length){
if (!entry.equalsIgnoreCase(Questions)){
System.out.println("Test2");
}
}
}
}
}
編輯:
我已經改變了我的二維數組轉換成一個HashMap,但我得到一個「無法找到符號,一流的Hashmap」進口的java.util.HashMap後均勻;幫幫我? [固定]
import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;
import java.util.*;
public class QandA{
public static void main(String[] args){
String UE;
String[] Why = new String[]{"Because.", "Just Because.", "Why yourself."};
Map<String, String[]> Questions = new HashMap<>();
Questions.put("Why", Why);
Scanner k = new Scanner(System.in);
UE = k.next();
if(Questions.keySet().stream().filter(UE::equalsIgnoreCase).findFirst().isPresent()) {
System.out.println("Test");
} else {
System.out.println("Test2");
}
}
}
這是有點不清楚你想比較'entry'與什麼。用「問題」中的任何一個詞?只是每個問題的第一個問題?顯然,重複'if(entry.equalsIgnoreCase(Questions)){'10次而不改變任何東西根本沒有意義。 if(entry.equalsIgnoreCase(Questions [i] [0])){'可能會編譯,甚至可能有點意義,取決於您的要求。 –
@ammoQ我希望它檢查與條目相同的問題中的數組名稱。然後,如果找到它,則打印「Test」;如果找不到,則打印「Test2」。 –
http://stackoverflow.com/questions/744226/java-reflection-how-to-get-the-name-of-a-variable – Mawcel