首页 > 解决方案 > 如何在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,依此类推

标签: javauser-input

解决方案


让我们只考虑前两个重载。您必须检查提供给程序的第一个数字是浮点数还是整数。根据您的输入定义,您可以这样做:

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,但具有不同的类型。编译器将选择正确的重载。


推荐阅读