簡體   English   中英

Java - 將數字分成3個部分

[英]Java - separate number into 3 parts

假設我有以下數字:

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);

我寫得對嗎?

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);

您需要在Java String上使用substring() ,而不是原始int 使用String.valueOf()將您的數字轉換為String

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));

您可以使用模數邏輯從整數中提取數字。

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);

編輯:將數字存儲在數組中而不是單獨的變量中。

我寫得對嗎?

不,你不是,你將得到編譯時錯誤

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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM