我的问题是当它是负数时,我无法正确计算 int 的长度。
第二个问题是,当 int 数字小于 10 位时,如果函数不能忽略最后一位,知道如何解决这个问题吗?
int number = -123456789;
int length = (int) (Math.log10(number) + 1);
System.out.println("Variable length is: " + length + " digits \nThis is: " + number);
if (number <= -1) {
System.out.println("We have negative variable");
String negative = Integer.toString(number);
System.out.println(negative);
if (negative.substring(10, 11).isEmpty()||
negative.substring(10, 11).equals("") ||
negative.substring(10, 11) == "" ||
negative.substring(10, 11).equals(null) ||
negative.substring(10, 11) == null)
{
System.out.println("Nothing");
} else {
String separate_10 = negative.substring(10, 11);
System.out.println("Last digit (10): " + separate_10);
int int_10 = Integer.parseInt(separate_10);
byte result = (byte) int_10;
}
String group = "Existing result is: " + result;
System.out.println(group);
}
这是当我有 -1234567890 十位数时的结果:
变量长度为:0 位 这是:-1234567890 我们有负变量 -1234567890 最后一位 (10):0 现有结果为:0
这是当我有 -123456789 九位数时的结果:
变量长度为:0 位 这是:-123456789 我们有负变量 -123456789
线程“main”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:11 at java.lang.String.substring(String.java:1963) at demo_place.main(demo_place.java:17)
Helenr
相关分类