Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从enum Java获取值_Java_Enums_Enumeration - Fatal编程技术网

从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;
    }
}
我想要一个显示如下的结果:

  • 如果我问年轻人,它会显示一个10到15岁的年轻人
  • 如果我要一个成年人,那么我会得到一个20到50岁的成年人

  • 如何要求用户输入整数值而不是字符串(使用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岁之间的信息。你能给我举个例子吗