如何解决从枚举 Java 中获取值
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)并通过 main 函数中的 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,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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。