我正在尝试获取int的后三位数字,该值可以是字符串或int格式的999以上。
例如,如果我收到int 12345678,则将获得值678。
当前,我只能满足于长度为4位(例如1899)的int。
使用 String.valueOf(numberReceived).substring(1);
答案 0 :(得分:1)
取模(%
)运算符,可让您在除法后获得余数。对于您的情况,您需要后三位数字,因此您需要使用% 1000
来获取正确的余数。
例如,2500 / 1000 = 2
。其余为500。2500 % 1000 = 500
public static int lastThreeDigits(int i) {
return i % 1000;
}
重要的是要注意,结果int
不一定是三位数。例如。 2039
会给您39
,而不是039
。
为确保您拥有三位数,您需要将结果转换为字符串。例如。 String.format("%03d", i)
如果您的原始号码为String
格式,并且您想获取最后3个字符,则可以使用字符串操作代替算术。例如,下面是一个更通用的函数,用于从字符串末尾获取多个字符:
public static String lastNChars(int n, String s) {
return s.substring(Math.max(0, s.length() - n));
}
根据您的需要,有很多不同的编写方式。
答案 1 :(得分:1)
您可以使用substring方法找到numberReceived中的位数并获取最后3位数字:
String.valueOf(numberReceived).substring(String.valueOf(numberReceived).length()-3);