我有这个代码,当用户输入一个颜色的代码,它应该给用户颜色名称,例如“A01”,然后它会说“红色”然后显示颜色,但我如何得到循环到通过阵列?这是完整的代码:
import java.awt.Color;
import java.awt.Graphics;
import java.util.Scanner;
public class ArrayColor {
public static void main(String[] args) {
String d="A01";
String h="A01";
String colorCode[] [] = { {"A01","Red"}, {"B07","Blue"}, {"H02", "Yellow"},{"M04", "Orange"}, {"O05","Black"}, {"L08", "While"} };
Scanner keyboard = new Scanner(System.in);
d = getColor();
for(int i=0; i<colorCode.length -1; i++){
System.out.println(colorCode[i]);
}
}
答案 0 :(得分:3)
您可以使用java.util.HashMap
替换2D数组。像这样:
Map<String, String> colorCode = new HashMap<String, String>();
colorCode.put("A01","Red");
colorCode.put("B07","Blue");
colorCode.put("H02", "Yellow")
/* .. etc... */
然后你可以通过做类似的事情来检索颜色(没有for
循环):
Scanner keyboard = new Scanner(System.in);
String userInput = keyboard.nextLine();
String color = colorCode.get(userInput);
System.out.println(color);
当然,您应该检查userInput
是否有效。
答案 1 :(得分:0)
变化:
for(int i=0; i<colorCode.length -1; i++)
使用:
for(int i=0; i<colorCode.length; i++)
让我们说colorCode.length
等于1(数组中有一个元素)。如果在i
小于colorCode.length - 1
且等于0时进行迭代,则代码将不会运行,因为0不小于0.