为了账号安全,请及时绑定邮箱和手机立即绑定

负 int 到字节 Java

负 int 到字节 Java

HUH函数 2023-04-19 16:31:56
我的问题是当它是负数时,我无法正确计算 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)
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

String 的索引从 开始0,所以当您这样做时;


negative.substring(10, 11) 

第 11 个索引超出范围,因为最后一个字符位于索引 10,即'9',您可以使用;


negative.charAt(negative.length() - 1)

在不对任何索引值进行硬编码的情况下获取最后一个字符。


要获得负整数的长度,只需执行negative.length() - 1, 即可'-'从图片中获取字符。


要不就;


int getIntLength(int integer) {

    String intStr = Integer.toString(integer);

    return intStr.length() + (integer < 0 ? -1 : 0);

}

无论是负数还是正数都可以获得长度


查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信