2016-09-26 55 views
-2

我想創建一個數組列表,然後創建一個新數組,其中所有數字都被更改爲十六進制數。這裏是我的代碼,但是當它應該打印十六進制版本時,它只是空白。如何將此數組列表從整數更改爲十六進制?

import java.util.Arrays; 
import java.util.ArrayList; 
import java.util.Scanner; 
import java.util.Collections; 


public class exp2{ 
    public static void main(String[] args){ 
    ArrayList<Integer> digits = new ArrayList<Integer>(); 
    digits.add(3); 
    digits.add(1,8); //at index 1, add an 8 
    System.out.println(digits); 

    ArrayList<Integer> dubs = new ArrayList<Integer>(); 
    Scanner s = new Scanner(System.in); 

    while (s.hasNextInt()){ 
     dubs.add(s.nextInt()); 
    } 
    while(!s.hasNextInt()){ 
     Collections.sort(dubs); 
     System.out.println(dubs); 
     break; 
     } 




    ArrayList<String> dubstoHex = new ArrayList<String>(); 
    int i; 
    for (i = 0; i < dubstoHex.size(); i++){ 
    String.format("0x%08X", i); 
    } 
    System.out.println(dubstoHex); 
    } 

} 

我試着在arens後面引用「dubs」,但是這樣會導致編譯器出錯。我也嘗試將dubs.get(i)作爲String.format中的第二個參數......但是這也沒有做到。

+2

它看起來像你的代碼使一個空的ArrayList'dubstoHex'和遍歷空的集合,然後打印出結果。 – clay

+0

我不明白你所描述的問題。請重新說明。 –

回答

1

這裏是什麼,我認爲你正在嘗試做一個簡單得多的版本:

public class FunctionalHex { 
    public static void main(String[] args) { 
     List<Integer> l = Arrays.asList(3, 1, 8); 
     List<String> hex = l.stream().map(i -> String.format("0x%08X", i)).collect(Collectors.toList()); 

     System.out.println(hex); 
    } 
} 
+0

我想要做的只涉及從第二個陣列列表開始的東西 – user311302

相關問題