Java - 将数字分成3个部分

时间:2015-07-16 06:02:19

标签: java int

我们说我有以下号码:

36702514

我想将上面的数字分成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);

我的写作是否正确?

4 个答案:

答案 0 :(得分:7)

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

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

36,702,514

然后用逗号分割此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);

答案 1 :(得分:5)

您需要在Java substring()上使用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));

答案 2 :(得分:0)

您可以使用模数逻辑从整数中提取数字。

int num1 = num % 10;
int num2 = num / 10 % 10;
int num3 = num /100 % 10;

System.out.print(num1);
System.out.print("\n" + num2);
System.out.print("\n" + num3);

编辑:将数字存储在数组中而不是单独的变量中。

答案 3 :(得分:-3)

  

我的写作是否正确?

不,你不是,你将得到编译时错误

error: int cannot be dereferenced

num在这里是一个原语,你不能在原语上调用方法。

正确的方法是:

int no = 36702514;
String num=String.valueOf(num);
int num1 = Integer.parseInt(num.substring(0, 2));
int num2 = Integer.parseInt(num.substring(2, 3));
int num3 = Integer.parseInt(num.substring(5, 3));