Java 如何:将用户输入作为整数转换为字符串
//这是我的第一节课。用于设置构造函数和mutator方法Java 如何:将用户输入作为整数转换为字符串,java,class,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; } } 我
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方法
谢谢。您可以使用枚举在整数和字符串之间进行映射,如下所示
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);
}
}
这就是枚举的用途。枚举是集合中所有项的完整有序列表 因此,在您的示例中,您可以将
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
类(您不应该这样做——没有理由为了这么简单的目的而包含类的所有开销):
编辑:
对于您的确切用例:
您想从某个扫描器
对象中提取一个数字,用它来实例化一个颜色类或枚举,然后获取值
出于本例的目的,我将假设您拥有我上面的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
语句 如果这还不够,我将添加程序的其余部分,希望能让这更清楚。是否要将字符串颜色指定给该类的属性?是。在我的另一个使用这些类的程序中,它有一个色码扫描器。如果他们输入1,我想将该输入转换为字符串setColorOfAuto(1=“red”),这有意义吗?因为他们只有4,开关有什么问题?你是什么意思?我的实际程序包含2、3、4的所有if语句以及任何超出范围的语句。为了帮助我,我只是想把它简化一下。嗯,如果我找不到人来帮助我使用Mutator和Accessor方法,那么我会尝试在我的编码中实现这一点。谢谢你抽出时间!但正如我所说的,我现在被限制在更基本的编程方式上。这是一个想法,你可以在枚举中定义映射,就像你读取一个整数的构造函数一样,然后检查枚举,从中提取字符串,就像在示例中一样,这是一种实现它的方法。我明白你的观点,我喜欢这个概念。但是,问题是。我必须有一个扫描仪,用于输入1,2,3,4。(色码)。然后,它将这些值返回到字符串。比如输入你的汽车是什么颜色。用户输入:1好的,您选择了红色。对。你仍然可以使用扫描仪。从扫描仪获取用户输入,然后将其传递到颜色枚举或使用它初始化颜色类。您可以通过打印枚举或打印类对象来获得所需的字符串值。对不起。我对java相当陌生。你能给我举一个小例子,说明你所说的将其传递到颜色枚举中是什么意思吗?
//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);