向用户选择添加char

时间:2014-02-08 13:46:42

标签: java arrays user-input

嗨,我遇到了这个问题。情况就是这样。有4种选择

  1. [1]黑
  2. [2]红色
  3. [3]蓝色
  4. 例如,如果用户选择任何一个数字代码将打印:

    你选择黑色 这是我到目前为止的代码

    System.out.print("Course: \n[1] BSIT \n[2] ADGAT \n[3] BSCS \n[4] BSBA \n[5] NITE \n    enter course:");
    course=Integer.parseInt(input.readLine());
    

    问题是,当我调用system.out.print(“”+ course)时;它打印的是数字而不是单词本身?

3 个答案:

答案 0 :(得分:1)

如果没有任何数据结构,您无法打印课程。如果您想将数字与某种数据联系起来,您需要自己完成。例如,将名称存储在数组中:

String[] names = {"BSIT","ADGAT","BSCS","NITE"};

然后使用相应的查找引用您的数组:

//...
int course = Integer.parseInt(input.readLine());
System.out.println("You chose: " + names[course-1]);

请记住,在处理数组时,索引从零开始,因此我们减少一。

答案 1 :(得分:0)

你在那里做什么: 你打印出一个句子。 2.您让用户输入一个句子,您希望该句子包含一个数字并将其转换为。

程序本身并不知道你给用户的第一句话实际上是他应该选择的不同东西的选择。

您需要将数字转换回实际代表的数字。

最简单的方法是

String word;
switch(course) {
  case 1: word = "BSIT"
    break;
  case 2: word = "ADGAT";
    break;
  case 3: word = "BSCS";
    break;
  case 4: word = "BSBA";
    break;
  case 5: word = "NITE";
    break;
  default:
    throw new IllegalArgumentException("The choice '" + course + "' is not a valid one. Only 1-5 would be legal);
}
System.out.println("The course you've chosen is: " + word);

这是在这里做到最直接的方式,但实际上不是我的最爱,因为它复制了映射完成的地方。我更愿意告诉程序这些东西是什么,例如:

private enum Courses {
   BSIT(1), ADGAT(2), BSCS(3), BSBA(4), NITE(5);

   private int userChoice;

   private Courses(int theUserChoice) {
     userChoice = theUserChoice;
   }

   public int getUserChoice() {
     return userChoice;
   }

   public static fromUserChoice(int aChoice) {
     for (Courses course: Courses.values() {
       if (course.userChoice == aChoice) {
         return course;
       }
       throw new IllegalArgumentException("The choice '" + course + "' is not a valid one. Only 1-5 would be legal);
     }
   }
}

private static String printCourseList() {
  System.out.print("Courses: ");
  for (Courses course: Courses.values()) {
    System.out.print("[" + course.getUserChoice() + "] " + course.name() + " "); 
  }
  System.out.println();
}

public static main(String[] args) {
   printCourseList();
   Courses course = Courses.fromUserChoice(Integer.valueOf(System.console().readLine()));
   System.out.println("You're selected course is: " + course.name());
}

我更喜欢这种方式,因为现在程序实际上知道有一个叫做“课程”的特殊事物。它知道它与数字绑定,并且某些数字实际上可能反映了课程的选择。它是在一个中心位置(课程的定义)。

希望这不是太多的信息,你会发现这有用。

答案 2 :(得分:0)

使用此

    switch(course)
        {
        case 1:
            System.out.println("black");
            break;
        case 2:
            System.out.println("red");
            break;
        case 3:
            System.out.println("blue");
            break;
        default:
            System.out.println("invalide number"); // this will execute if course var does not equale to 1 , 2 or 3
            break;

        }