如何:将用户输入作为整数转换为String

时间:2015-10-27 22:18:20

标签: java class

//这是我的第一堂课。用于设置构造函数和mutator方法。

public int setColor(int setColor) //Mutator
{
  colorCode = setColor;
  return setColor;
}

public String setColorOfAuto(String toString)
{
  if (colorCode == 1);
  {
    toString = ("Red");
    return toString;
  }
}

我的问题是。我如何获得用户输入,作为整数,(1,2,3,4)转换为字符串(1表示红色,2表示蓝色,3表示白色,4表示黑色)。 这些对象已经被声明和初始化,但由于编程的重量超重,我选择不添加该部分。此外,这使它看起来更干净,希望更容易导航。仅限于使用mutator和accessor方法。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用枚举来映射整数和字符串,例如下面的

public enum Color {
        RED(1), BLACK(2), WHITE(3);
        private int value;

        private Color(int value) {
            this.value = value;
        }
    }

    public static void main(String[] args) {
        for (Color col : Color.values()) {
            System.out.println("Color Value: " + col.value + " - Color Name: " + col);
        }
    }

答案 1 :(得分:0)

这就是枚举的用途。枚举是集合中所有项目的完整有序列表。

因此,在您的示例中,您可以将Color定义为枚举类型:

enum Color {
  RED(1),
  BLUE(2),
  WHITE(3),
  BLACK(4);
}

如果要打印出已被实例化为红色的Color实例,它将如下所示:RED

如果您希望他们说出其他内容,您甚至可以为每个人提供自定义说明:

enum Color {
  RED(1),
  BLUE(2),
  WHITE(3),
  BLACK(4);

  private final String description;

  Color(int value) {
    switch(value) {
      case 1: 
        description = "The color of blood.";
        break;
      case 2:
        description = "As blue as the ocean.";
        break;
      //etc...
    }
  }

  @Override
  public String toString() {
    return description;
  }
}

如果你坚持拥有Color课程(你不应该这样做 - 没有理由为了这么简单的目的而包括课程的所有开销):

class Color {

  int value;
  String description;

  Color(int value) {
    this.value = value;
    setColor(value);
  }

  private setColor(int value) {
    switch (value) {
    case 1: 
      this.description = "Red";
      break;
    case 2:
      this.description = "Blue";
      break;
    //Etc...
    }
  }

  public setValue(int value) {
    this.value = value;
    description = setColor(value);
  }

  @Override
  public String toString() {
    return description;
  }
}

编辑:

对于完全用例:

您想从某个Scanner对象中提取一个数字,使用它来实例化Color类或枚举,然后取值。

出于本示例的目的,我将假设您拥有上面的Color类。您必须完成该类内部的switch语句才能使其正常工作。

//Within main
Scanner stdin = new Scanner(System.in);
// Print user prompts
// ...
int colorSelection = stdin.nextInt();

Color c = new Color(colorSelection);

// Print the color
System.out.println(c);

如果要在ALL-CAPS中打印颜色,可以使用上面相同的代码,但我在答案中列出的第一个枚举代替Color类。如果需要自定义描述符,请使用第二个枚举并完成switch语句。