从enum Java获取值
我有一个枚举定义如下从enum Java获取值,java,enums,enumeration,Java,Enums,Enumeration,我有一个枚举定义如下 public enum AgeRange { YOUNG(10,15), ADULT(20,50); private final int value; private AgeRange (int value) { this.value = value } public int getValue() { return value; } } 我想要一个显示如下的结果: 如果我问年轻人
public enum AgeRange {
YOUNG(10,15),
ADULT(20,50);
private final int value;
private AgeRange (int value) {
this.value = value
}
public int getValue() {
return value;
}
}
我想要一个显示如下的结果:
如何要求用户输入整数值而不是字符串(使用java.util.Scanner)并通过主函数中的system.out.println返回结果首先,您的枚举不会编译。您的构造函数接受一个参数,但您使用两个参数调用它。将其更改为以下内容:
public enum AgeRange {
YOUNG(10,15),
ADULT(20,50);
private final int from;
private final int to;
private AgeRange (int from, int to) {
this.from = from;
this.to = to;
}
public int getFrom() {
return from;
}
public int getTo() {
return from;
}
}
- 现在,向用户询问年龄
- 在AgeRange.values()上循环
- 对于每个范围,将年龄与range.getFrom()和range.getTo()进行比较
- 找到正确的范围后,将其返回
- 请记住,年龄可能超出您提供的范围。那你打算怎么办
public enum AgeRange {
YOUNG(10,15),
ADULT(20,50);
private final int from;
private final int to;
private AgeRange (int from,int to) {
this.from = from;
this.to = to;
}
public int getFrom() {
return from;
}
public int getTo() {
return to;
}
public static void displayRangeBoundaries(String str) {
for (AgeRange range : AgeRange.values()) {
if (str.toUpperCase().equals(range.toString())) {
System.out.println(range.toString() + " is between " +
range.getFrom() + " and " + range.getTo() +
" years old."
);
return;
}
}
System.out.println("No range found for: " + str);
}
}
然后像这样使用它:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter a range term");
String input = scan.nextLine();
AgeRange.displayRangeBoundaries(input);
}
您好@Sean Patrick Floyd,用户将输入young或成人,而不是年龄。我必须展示年轻人在10到15岁之间的信息。你能给我举个例子吗