※ ChatGPTを利用し、要約された質問です(原文:数値を文字列に変換する?)
数値を文字列に変換する方法と桁数設定メソッド
このQ&Aのポイント
数値を文字列に変換する方法と桁数設定メソッドについて説明します。プログラムでは、先行空白付きの指定桁数の表現や先行0付きの16進数大文字表現をするために、数値を文字列に変換しています。
プログラムでは、int値をString型に変換するために、String ss = "" + dt;と記述しています。これにより、数値を文字列に変換することができます。
なぜString ss= " "+dt;のように数値を文字列に変換する必要があるのかについては、具体的な説明がされていませんが、おそらく先行空白付きの表現をするために必要な処理と思われます。
下のプログラムでなぜString ss= " "+dt;のように数値を文字列に変換しないとだめなんでしょうか?
ちなみに桁数設定メソッドを作るプログラムです。
public class JcWidth { // JcWidth.java [java]
public static void main(String args[]) {
System.out.println(":" + toIntWidth(123, 8) + ":");
System.out.println(":" + toIntWidth(12345, 8) + ":");
System.out.println(":" + toIntWidth(-1234567890, 8) + ":");
System.out.println(":" + toHexWidth(4095, 8) + ":");
System.out.println(":" + toHexWidth(123456789, 8) + ":");
}
// int値dtを先行空白付きw桁(最大12)の表現にする
// 数値が指定幅より大きいときは必要な幅にする
public static String toIntWidth(int dt, int w) {
if (w > 12) w = 12;
String ss = "" + dt; // 数値を文字列にする
if (ss.length() > w) w = ss.length();
ss = " " + dt;
return ss.substring(ss.length()-w);
}
// int値dtを先行0付きw桁(最大8)の16進数大文字表現にする
public static String toHexWidth(int dt, int w) {
if (w > 8) w = 8;
String ss = Integer.toHexString(dt).toUpperCase();
if (ss.length() > w) w = ss.length();
ss = "0000000" + ss;
return ss.substring(ss.length()-w);
}
}
お礼
お返事ありがとうございます! なるほど、そういうことでしたか。 よく数値を文字列にするプログラミングを見るのですが、そういう側面があったのですね。 ありがとうございました。