2013-07-19 59 views
-1

例如,假設用戶輸入:2314.將每個數字放在數組的自己的字段中的最快方法是什麼?如何隔離int中的每個數字並將其放入數組中?

我試圖轉換成一個字符串,然後隔離每個數字作爲字符,但我不知道如何將它從一個字符轉換爲一個int。

+0

一些事情「這是自己的領域數組中」的意思? – rahulserver

+0

顯示你的努力之前問題將被關閉.. – Maroun

+0

我已經嘗試轉換成一個字符串,然後隔離每個數字作爲字符,但我不知道如何將它從一個字符轉換爲一個int。 – entropy

回答

4
  1. 您可以將您的號碼轉換爲字符串。
  2. 然後使用String#toCharArray()方法將字符串轉換爲char數組。
  3. 創建大小等於char數組的int[]
  4. 迭代char數組,並將每個字符轉換爲int,並將其放入整數數組中。

記住,轉換到charint棘手。你不能只是做一個typecast。那會給你ASCII碼的編號。您可以使用下面的代碼轉換從charint

char ch = '3'; 
int chToInt = ch - '0'; 

另一種方法是使用一個ArrayList。並做整數除法模數操作,得到每個單獨的數字,並將其加到ArrayList

2314/1000 = 2  // First digit (add to ArrayList) 
2314 % 1000 = 314 // This is the new number 

314/100 = 3 // Add this to ArrayList 
314 % 100 = 14 // This is the new number 

// Proceed like this 

您需要找到一種方法來編寫上述步驟的loop

+0

通過字符'0'減法有什麼作用? – entropy

+0

@ user2396852。 ''2' - '0',將會減去兩個字符的ASCII碼。差別將是'2'。 –

+0

太棒了,謝謝:) – entropy

2
int number = 1234; 
int array[] = new int[String.valueOf(number).length()]; 
for (int i = 0; number > 0; i++) { 
    array[i] = number % 10; 
    number = number/10; 
} 
0

打印整數按相反的順序(LSB到MSB)

while(a > 0) 
{ 
    arr[i] = a%10; 
    a = a/10; 
} 
0

試試這個:

int[] nums = new int[input.length]; 
int i = 0; 
for (String c : input.split("(?<=.)") 
    nums[i++] = Integer.parseInt(c); 

分裂正則表達式的關鍵是:這是一個 「向後看」 的任何字符,在每個字符後都會導致分裂。

如果您簡單地將其分割爲空白,即str.split(""),則結果數組的第一個元素中有空白。

+0

我猜〜OP想填充一個int數組。順便說一句,感謝留下我關於str#split(「」),它在索引0處產生一個空字符串。:) – PermGenError

0

嘗試這樣

String str="2314"; 
    int[] arr=new int[str.length()]; 
    for(int i=0;i<arr.length;i++){ 
    arr[i]=Integer.parseInt(str.substring(i,i+1)); 
    } 
相關問題