質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

4051閲覧

0埋め10桁の数字をコンソール出力できません

infp

総合スコア0

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/10/09 03:43

前提・実現したいこと

csvをtxt形式に変換するツールの開発

発生している問題

String.formatでを用いて、「1」を「000000001」に変換したもの(0埋め10桁の数字)を コンソール出力したいのですが出力できません。デバッグ時にスレッドに飛んでしまいます。 String.formatの()の中身はdata[0]のような配列変数だとNGなのでしょうか?

該当のソースコード

Java

1//顧客番号 10バイト 2System.out.println(String.format("%010d", data[0]));

全体のソースコード

Java

1import java.io.BufferedReader; 2import java.io.File; 3import java.io.FileNotFoundException; 4import java.io.FileReader; 5import java.io.IOException; 6 7 8public class CsvToTxt { 9 10 public static void main(String[] args) { 11 try { 12 //入力ファイル(csv)の宣言 13 File csv = new File("C:\Users\No291\Desktop\40_プログラミング課題(CsvToText)\05_テスト用データ\1\Customer.csv"); 14 15 //csvを読み込む 16 FileReader fr = new FileReader(csv); 17 BufferedReader br = new BufferedReader(fr); 18 19 System.out.println("txtファイルを読み込みました。"); 20 String line = null; 21 22 //配列の箱に入れるときの変数 23 String[] data = null; 24 25 while((line = br.readLine()) != null) ;{ 26 27 //lineをカンマで分割し、配列dataに設定 28 data = line.split(","); 29 30 //配列箱の数だけループ処理 31 for(String elem : data) 32 33 System.out.println(elem+"を読み込みました"); 34 35 //固定長に桁揃えするために頭0埋め,半角埋め 36 37 //顧客番号 10バイト 38 System.out.println(String.format("%010d", data[0])); 39 40 //顧客名 40バイト 41 System.out.println(String.format("%-40s", data[1])); 42 43 //顧客名カナ 40バイト 44 System.out.println(String.format("%-40s", data[2])); 45 46 //郵便番号 8バイト 47 System.out.println(String.format("%-8d", data[3])); 48 49 //都道府県 8バイト 50 System.out.println(String.format("%-8s", data[4])); 51 52 //市区町村 40バイト 53 System.out.println(String.format("%-40s", data[5])); 54 55 //番地 40バイト 56 System.out.println(String.format("%-40d", data[6])); 57 58 //ビル名等 40バイト 59 System.out.println(String.format("%-40s", data[7])); 60 61 //電話番号 13バイト 62 System.out.println(String.format("%-13d", data[8])); 63 64 //FAX番号 13バイト 65 System.out.println(String.format("%-13d", data[9])); 66 67 //メモ 200バイト 68 System.out.println(String.format("%-200s", data[10])); 69 70 } 71 } 72 catch (FileNotFoundException e) { 73 e.printStackTrace(); 74 System.out.println( "入出力エラーがありました" ); 75 } 76 catch (IOException e) { 77 e.printStackTrace(); 78 System.out.println( "入出力エラーがありました" ); 79 } 80 } 81} 82//ファイルの読み書き 83 84 85 86 87 88 89

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

$ jshell jshell> String text = "123" text ==> "123" jshell> String.format("%010d", text) | java.util.IllegalFormatConversionException thrown: d != java.lang.String | at Formatter$FormatSpecifier.failConversion (Formatter.java:4331) | at Formatter$FormatSpecifier.printInteger (Formatter.java:2846) | at Formatter$FormatSpecifier.print (Formatter.java:2800) | at Formatter.format (Formatter.java:2581) | at Formatter.format (Formatter.java:2517) | at String.format (String.java:2747) | at (#2:1)

dの引数のカテゴリは整数。だからStringを渡すと例外が発生する。なので、引数を整数に変換すればいい。

jshell> String.format("%010d", Integer.parseInt(text)) $3 ==> "0000000123"

投稿2021/10/09 04:02

shiketa

総合スコア4061

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問