社員管理のコンソールアプリケーションで検索機能を実装しました。
検索結果の表示を列をそろえて表示させたいのですが、うまく実装できません。
社員ID、性別、生年月日、部署名は揃うのですが、社員名のみ揃いません。
何か効果的な実装方法はございますでしょうか?
↓コンソール上の検索結果
社員ID 社員名 性別 生年月日 部署名
6 鈴木 太郎 男性 1986/10/12 営業部
8 渡辺 花子 女性 1988/04/23 総務部
7 田中 二郎 男性 1978/07/02 総務部
↓コード
System.out.println("社員ID\t社員名\t性別\t生年月日\t部署名"); while (resultSet.next()) { System.out.print(resultSet.getString("emp_id") + "\t"); System.out.print(resultSet.getString("emp_name") + "\t"); int gender = Integer.parseInt(resultSet.getString("gender")); if (gender == 1) { System.out.print("男性\t"); } else if (gender == 2) { System.out.print("女性\t"); } System.out.print(resultSet.getString("birthday") + "\t"); System.out.println(resultSet.getString("dept_name")); rowCount++; }
揃わないとはどういうふうになるんでしょうか。
問題が見えません
1行目のヘッダと2行目以降とで位置が揃わないということですか?
まあ、タブっていうのは、そういうものだと思いますが…。
この出力をファイルにリダイレクトしてtsvファイルとしてスプレッドシートにインポートすれば、スプレッドシートの列では揃うのではないでしょうか。
社員IDの数字の出力を書式付にして、"社員ID" と同じ文字幅にしましょう。
最近、Java使ってないので、ちょっとコードが出ない、、、とこちらへ
...
あっと、出力を見ると、生年月日の文字幅も要検討。多分、"生年月日"の幅が狭いので、次の部署名が合わない事になりそう。同様に、空白の追加が必要か。
ちょっと気になるのが、タブ幅 4文字分でしょうか? エディタ等で変更可ですが、標準は、8文字分じゃなかったか。
出力イメージもコードブロックに書きましょう。
・期待する出力
・実際の出力
それぞれ。
回答3件
あなたの回答
tips
プレビュー