java - 如何在java中处理不同类型的输入
问题描述
在这个问题
编写一个程序来演示具有以下方法的方法重载:
1.Interest_rate*(int s, int a, float d)
2.Interest_rate*(float s, int a, float d)
3.Interest_rate*(int s, int a, double d)
这些是基于方法输入格式的测试用例:
测试用例 1
1000 66 12.1f
测试用例 2
1000f 45 12.1f
那么如何创建主函数,其中输入将自动触发所需的函数,如测试用例 1,它应该调用1.Interest_rate
和测试用例 2 应该调用2.Interest_rate
,依此类推
解决方案
让我们只考虑前两个重载。您必须检查提供给程序的第一个数字是浮点数还是整数。根据您的输入定义,您可以这样做:
if ( args[0].endsWith("f") )
// First number is a float
Interest_rate(Float.parseFloat(args[0]), Integer.parseInt(args[1]), Float.parseFloat(args[2]));
else
// First number is an integer
Interest_rate(Integer.parseInt(args[0]), Integer.parseInt(args[1]), Float.parseFloat(args[2]));
如您所见,在这两种情况下,我们都调用了一个方法Interest_rate
,但具有不同的类型。编译器将选择正确的重载。
推荐阅读
- javascript - 我需要帮助!基本的 JavaScript
- python - 在 Python 中通过 POST 发送 JSON 数组
- php - N00b 的 AJAX 表单示例
- javascript - 在网格中排列动态创建的 div
- point-cloud-library - 带标签的 CAR 点云 KITTI
- ruby-on-rails - 为什么升级 Rails 和 Ruby 后 Heroku slug 的大小翻了一番?
- css - 检查类是否在任何祖先上的 Sass 选择器
- django - Django的模板语言不会在异常时静默失败?
- r - 从 R 下关闭与 Julia 的连接
- pandas - 将不同形状的 CSV 组合成一个 CSV