gpt4 book ai didi

java - 如何在 Java 中输入常量作为输入

转载 作者:行者123 更新时间:2023-11-30 06:09:10 26 4
gpt4 key购买 nike

我一直在使用 Java 进行编程,并且在解决编程问题的计算中使用了常量 Integer.MAX_VALUE

我想知道当用户输入时,Java是否有办法解释Integer.MAX_VALUEInteger.MIN_VALUE(系统定义的常量),而不需要执行明显的字符串比较。

目前我使用的常量为:

int MAXIMUMINTEGER = Integer.MAX_VALUE;
int MINIMUMINTEGER = Integer.MIN_VALUE;

我想按如下方式使用它们:

System.out.println("Enter a number : ");
int number = in.nextInt();
System.out.println("The number entered is : " + number);

在输出控制台中:

Enter a number: Integer.MAX_INT
The number entered is : 2147483647

我正在寻找使 java 理解定义的常量作为用户输入的方法。

对此的任何帮助表示感谢。

最佳答案

除非在代码中明确说明这些值(因此您提到的 String 比较),否则这并不容易实现。

但是,可能存在使用反射机制的硬核解决方案,这基本上是对类及其字段的元访问。尽管如此,您仍然需要将输入解析为字段名称,如下所示:

System.out.println("Enter a number : ");
String input = in.nextString();
Class klass = Class.forName("java.lang." + input.split("\\.")[0]);
Field field = klass.getField(input.split("\\.")[1]);
int number = field.getInt(klass);
System.out.println("The number entered is : " + number);

这将获得您输入的预期结果(前提是您传递 Integer.MAX_VALUE 而不是 Integer.MAX_INT,因为后者不是常量值)。

我猜你可以首先使用Integer.valueOf()将其转换为功能代码,然后在值无效时解析String

尽管如此,边界情况太多了,在任何可以想象的情况下这都是不值得的:-)

关于java - 如何在 Java 中输入常量作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38467284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com