HUH函數(shù)
2023-04-19 16:31:56
我的問題是當(dāng)它是負(fù)數(shù)時(shí),我無法正確計(jì)算 int 的長(zhǎng)度。第二個(gè)問題是,當(dāng) int 數(shù)字小于 10 位時(shí),如果函數(shù)不能忽略最后一位,知道如何解決這個(gè)問題嗎?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);}這是當(dāng)我有 -1234567890 十位數(shù)時(shí)的結(jié)果:變量長(zhǎng)度為:0 位 這是:-1234567890 我們有負(fù)變量 -1234567890 最后一位 (10):0 現(xiàn)有結(jié)果為:0這是當(dāng)我有 -123456789 九位數(shù)時(shí)的結(jié)果:變量長(zhǎng)度為:0 位 這是:-123456789 我們有負(fù)變量 -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貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
String 的索引從 開始0,所以當(dāng)您這樣做時(shí);
negative.substring(10, 11)
第 11 個(gè)索引超出范圍,因?yàn)樽詈笠粋€(gè)字符位于索引 10,即'9',您可以使用;
negative.charAt(negative.length() - 1)
在不對(duì)任何索引值進(jìn)行硬編碼的情況下獲取最后一個(gè)字符。
要獲得負(fù)整數(shù)的長(zhǎng)度,只需執(zhí)行negative.length() - 1, 即可'-'從圖片中獲取字符。
要不就;
int getIntLength(int integer) {
String intStr = Integer.toString(integer);
return intStr.length() + (integer < 0 ? -1 : 0);
}
無論是負(fù)數(shù)還是正數(shù)都可以獲得長(zhǎng)度
添加回答
舉報(bào)
0/150
提交
取消