首页 > 解决方案 > 获取 Int 的最后三位

问题描述

我正在尝试获取 int 的最后三位数字,其值可以是字符串或 int 格式中超过 999 的任何值。

例如,如果我收到 int 12345678,我会得到值 678。

目前,我只能满足 4 位数长的 int 的要求,例如 1899。

使用 String.valueOf(numberReceived).substring(1);

标签: javaintegerintsubstring

解决方案


模 ( %) 运算符可让您获得除法后的余数。在您的情况下,您需要最后三位数字,因此您需要使用 % 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));
}

根据您的需要,有很多不同的方法来编写它。


推荐阅读