[英]Convert binary List<String[]> to binary byte[] java with exact result
我想將二進制列表轉換為二進制int []。 我的代碼如下:
public class BinListToIntArr {
public static void main(String[] args) {
List<String[]> arrList = new ArrayList<>();
//fill it
arrList.add(new String[] {"0011","1100","1111","1111","0000"});
arrList.add(new String[] {"0101","1111","1010","0000","0101"});
arrList.add(new String[] {"1111","1010","0000","0101","1111"});
arrList.add(new String[] {"1010","0000","1111","0101","1100"});
arrList.add(new String[] {"0000","1110","1100","0001","0011"});
//convert it
ArrayList<Integer> ints = new ArrayList<>();
for (String[] array : arrList) {
for (String str : array) {
ints.add(Integer.parseInt(str));
}
}
Integer[] result = ints.toArray(new Integer[] {});
for (int i : result){
System.out.println(i);
}
}
}
結果應該是:
0011
1100
1111
1111
0000
1010
1111
1010
0000
1010
1111
1010
0000
1010
1111
1010
0000
1111
1010
1100
0000
1110
1100
1000
1100
但是我得到了這個結果:
11
1100
1111
1111
0
101
1111
1010
0
101
1111
1010
0
101
1111
1010
0
1111
101
1100
0
1110
1100
1
11
我在哪一部分犯了錯誤? 有沒有人可以幫忙? 因為無論我如何嘗試,將String轉換為int時,String中的0始終會消失。 轉換為int時是否可以使String中的0不消失? 如果是,怎么辦?
不要混淆int和int的String表示形式,因為int只是一個數字,將永遠無法理解或存儲前導0之類的內容。 如果要顯示前導0,則格式化輸出。 String.format(...)或System.out.printf(...)可以正常工作,例如:
for (int i : result) {
System.out.printf("%04d%n", i);
}
哪個輸出:
0011
1100
1111
1111
0000
0101
1111
1010
0000
0101
1111
1010
0000
0101
1111
1010
0000
1111
0101
1100
0000
1110
1100
0001
0011
"%04d"
格式說明符說從一個4字符寬且前導0的整數打印一個字符串。
編輯:由於您也希望打印新行,因此我忘記在字符串格式中添加%n
。 現在已添加。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.