负 int 到字节 Java

我的问题是当它是负数时,我无法正确计算 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)


HUH函数
浏览 102回答 1
1回答

Helenr

String 的索引从 开始0,所以当您这样做时;negative.substring(10, 11)&nbsp;第 11 个索引超出范围,因为最后一个字符位于索引 10,即'9',您可以使用;negative.charAt(negative.length() - 1)在不对任何索引值进行硬编码的情况下获取最后一个字符。要获得负整数的长度,只需执行negative.length() - 1, 即可'-'从图片中获取字符。要不就;int getIntLength(int integer) {&nbsp; &nbsp; String intStr = Integer.toString(integer);&nbsp; &nbsp; return intStr.length() + (integer < 0 ? -1 : 0);}无论是负数还是正数都可以获得长度
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java