这个问题需要使用异常处理(try-catch
)来完成。
我尝试将字符串分成 4 个不同的整数。两个用于整数部分,另外两个用于小数部分。
但我仍然被困在如何生成错误。
对于 2 个整数,我的答案是,
import java.lang.*;
import java.util.*;
class s7
{
public static void main(String args[])
{
int a,b,c;
String str;
Scanner sc=new Scanner(System.in);
str=sc.nextLine();
StringTokenizer st=new StringTokenizer(str," ");
a=Integer.parseInt(st.nextToken());
b=Integer.parseInt(st.nextToken());
c=a/b;
try
{
int d=20/c;
System.out.println("Bigger: "+a);
}
catch(Exception e)
{
System.out.println("Bigger: "+b);
}
}
}
假设数字不能为负数,您可以尝试像 x/y
一样将一个除以另一个。
- 如果
x<y
,您将获得小于 1 的数字,例如0.xxxxxx
- 如果
x>=y
,您将获得大于或等于 1 的数字,例如1.xxxx
或2.xxxx
等。
现在要摆脱小数部分,我们需要做的就是将这样的数字转换为int
(我假设数字不是那么大)。这样,对于 x=y',您将获得更大的价值。
所以现在的问题是测试(int)x/y
是否0
。
要测试它,您可以尝试使用数组和IndexOutOfBoundsException
。只需创建一个可以包含一个元素new SomeType[1]
数组,并尝试使用类似 array[(int)x/y]
的结果访问该元素。如果您能够做到这一点,则打印y
(因为结果为 0,所以x<y
的情况),如果您将捕获 IOB 异常打印x
。