Java - 将数字分成3个部分

KKL*_*ael 4 java int

假设我有以下数字:

36702514
Run Code Online (Sandbox Code Playgroud)

我想将上面的数字分成3个部分,即36,702,514.
下面是我试过的代码:

int num = 36702514;
int num1 = num.substring(0, 2);
int num2 = num.substring(2, 3);
int num3 = num.substring(5, 3);
Run Code Online (Sandbox Code Playgroud)

我写得对吗?

dis*_*ame 7

List<String>  myNumbers = Arrays.asList(
    NumberFormat.getNumberInstance(Locale.US).format(36702514).split(","));
Run Code Online (Sandbox Code Playgroud)

我的解决方案String在美国语言环境中构建逗号分隔的输入:

36,702,514
Run Code Online (Sandbox Code Playgroud)

String然后由逗号分割,得到所需的三件在原来的问题.

List<Integer> numbers = new ArrayList<>();
Integer n = null;
for (String numb : myNumbers)
{
    try
    {
        n = new Integer(numb);
    }
    catch (NumberFormatException e)
    {
        System.out.println("Wrong number " + numb);
        continue;
    }
    numbers.add(n);
}
System.out.println(numbers);
Run Code Online (Sandbox Code Playgroud)


Tim*_*sen 5

您需要substring()在Java 上使用String,而不是在原语上使用int.将您的号码转换为String使用String.valueOf():

int num = 36702514;
String numString = String.valueOf(num);

int num1 = Integer.parseInt(numString.substring(0, 2));
int num2 = Integer.parseInt(numString.substring(2, 5));
int num3 = Integer.parseInt(numString.substring(5, 8));
Run Code Online (Sandbox Code Playgroud)