从整数中删除第n个数字而不转换为字符串

jef*_*eng 2 java integer digits

假设我在java中有这个整数987654321.我希望能够删除,说第三和第四位数,所以我可以进入9876521java.

我知道我可以通过转换为字符串,然后获取子字符串来实现这一点,但有没有办法在不转换为字符串的情况下执行此操作?

key*_*han 7

%和/是你的朋友!使用模数和除法,我们可以得到我们想要的数字.

我们使用模数来消除最高有效数字,并使用除法来消除最低有效数字.我们可以使用除法,因为余数被截断了.

然后我们将这两个操作中的两个部分放在一起.但是,我们需要将从分区中获得的数字移位到最低有效位数的空间.

拿987654321/10000,这将给你98765(让我们称之为x)

拿987654321%100,这将给你21(让我们称之为y)

x*100 + y = 9876521.

更一般地说,如果你想从数字n中删除一个到第b个数字(其中a <b),

n%10 ^(a-1)+((n/10 ^(b))*10 ^(a-1))

  • @Taslim感谢你的建议,补充说 (2认同)