我想创建一个arraylist,然后创建一个新的数组,其中所有数字都更改为十六进制。这是我的代码,但是当它应该打印十六进制版本时,它只是空白。
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);
}
}
我尝试在之后引用“dubs”,但是这会打败编译器。我也尝试将dubs.get(i)作为String.format中的第二个参数......但是这两个都没有。
答案 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);
}
}