前提・実現したいこと
Eclipseを使ってJavaの学習をしています。
16進数で表示した文字列の最小桁数を1桁にしたいのですが、できません。
2桁まではできるのですが、1桁ができません。
発生している問題・エラーメッセージ
Exception in thread "main" java.util.IllegalFormatPrecisionException: 1
該当のソースコード
Java
1import java.io.FileInputStream; 2import java.io.FileNotFoundException; 3import java.io.IOException; 4 5 6public class Sample01 { 7 8 public static void main(String[] args) { 9 FileInputStream fis = null; 10 11 try { 12 byte[] a = new byte[1025]; 13 fis = new FileInputStream("ファイルパス"); 14 fis.read(a); 15 16 int size = 0; 17 int total = 0; 18 while((size = fis.read(a)) > 0) { 19 total += size; 20 21 System.out.printf("%.1x",a[size]);//疑問点 22 System.out.println(total); 23 } 24 25 26 }catch(FileNotFoundException e) { 27 e.printStackTrace(); 28 }catch(IOException e) { 29 e.printStackTrace(); 30 }finally { 31 try { 32 fis.close(); 33 } catch (IOException e) { 34 e.printStackTrace(); 35 } 36 } 37 38 } 39 40} 41
試したこと
ソースコードの「疑問点」とコメントアウトしている部分を、以下の参考サイトを見て書き換えたのですが、エラーが発生し原因がわかりません。
(参考サイト:https://www.sejuku.net/blog/43246)
補足情報(FW/ツールのバージョンなど)
書式文字列を%xで指定し、2桁になるように%02x としてゼロ埋めした場合は、
a6
と表示されます。つまりこれを「6」のみ表示されるようにしたいです。
以上です。どうぞよろしくお願い致します。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 01:44