【Java】toStringメソッドを使って数値を文字列(String)に変換する!
数値を文字列(String)に変換するにはtoStringメソッドを使用します。
toStringメソッドはオブジェクトの文字列表現を返すメソッドとなります。
そのため、オブジェクトが数値であれば、数値を文字列表現として返すようになることから数値を文字列に変換することができます。
Mapの中に格納した要素を確認したい場合や、リストや配列に格納した要素を確認したい場合などにtoStringメソッドが使われます。
今回はtoStringメソッドを使って以下の場合で数値を文字列(String)に変換します。
⚫︎ Long型からString型へ変換する場合
⚫︎ Int型からString型へ変換する場合
⚫︎ Double型からString型へ変換する場合
⚫︎ 進数を設定してString型へ変換する場合
⚫︎ 書式を指定して数値を文字列に変換する場合
⚫︎ 書式を指定して数値を文字列に変換する場合
目次
toStringメソッドとは
toStringメソッドはオブジェクトの文字列表現を返すメソッドとなります。
toStringメソッドの書き方
toStringメソッドの構文は下記となります。
1 |
型.toString(数値, [進数]); |
パラメータ
⚫︎ 数値:
文字列に変換したい数値を指定する
⚫︎ 進数(任意):
文字列に変換する時の進数を指定する(デフォルトは10進数)
toStringの()に数値の変数を指定することで指定した数値をString型へ変換することができます。
しかし、変換対象の数値が文字列として変換できなかった場合には FormatExceptionの例外が発生します。
数値を文字列(String)に変換するサンプルコード
文字列(String)を数値に変換するサンプルコードを紹介します。
Long型からString型へ変換する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 数値を文字列に変換する public class Main { public static void main(String[] args) throws Exception { // toStringメソッドを使う long valL = 234545; System.out.println("long:" + valL); System.out.println("toStringメソッドを使って変換"); System.out.println("String:" + Long.toString(valL)); } } |
出力結果
long:234545
toStringメソッドを使って変換
String:234545
Long型からString型へ変換されました。
Int型からString型へ変換する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 数値を文字列に変換する public class Main { public static void main(String[] args) throws Exception { // toStringメソッドを使う int valI = 32768; System.out.println("int:" + valI); System.out.println("toStringメソッドを使って変換"); System.out.println("String :" + Integer.toString(valI)); } } |
出力結果
int:32768
toStringメソッドを使って変換
String :32768
Int型からString型へ変換されました。
Double型からString型へ変換する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 数値を文字列に変換する public class Main { public static void main(String[] args) throws Exception { // toStringメソッドを使う double valD = 123.4567; System.out.println("double:" + valD); System.out.println("toStringメソッドを使って変換"); System.out.println("String:" + Double.toString(valD)); } } |
出力結果
double:123.4567
toStringメソッドを使って変換
String:123.4567
double型からString型へ変換されました。
進数を指定して数値を文字列に変換する場合
進数を指定して数値を文字列に変換するにはtoStringの第2パラメータに進数を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// 数値を文字列に変換する public class Main { public static void main(String[] args) throws Exception { int valI = 32768; long valL = 1234567890; System.out.println("int :" + valI); System.out.println("long:" + valL); System.out.println("基数を指定してtoStringメソッドを使う場合"); System.out.println("String :" + Long.toString(valL, 16)); System.out.println("String:" + Integer.toString(valI, 8)); } } |
出力結果
int :32768
long:1234567890
基数を指定してtoStringメソッドを使う場合
String :499602d2
String:100000
サンプルコードでは16進数、8進数で文字列化しています。
基数の範囲は、「Char RADIX」以上、「Character.MAX_RADIX」以下でなければいけません。
書式を指定して数値を文字列に変換する場合
「DecimalFormat」クラスを使用することで、さらにさまざまな書式の数値を文字列に変換することができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// 数値を文字列に変換する import java.text.DecimalFormat; public class Main { public static void main(String[] args) throws Exception { double valD = 123.4567; int valI = 32768; System.out.println("double:" + valD); System.out.println("int :" + valI); //DecimalFormatを使う //通貨記号、カンマ付き書式 DecimalFormat df = new DecimalFormat("\u00a4 000,000.##"); System.out.println("DecimalFormatを使う場合"); System.out.println("String:" + df.format(valD)); System.out.println("String :" + df.format(valI)); } } |
出力結果
double:123.4567
int :32768
DecimalFormatを使う場合
String:$ 000,123.46
String :$ 032,768
数値をカンマ+通貨記号付き書式の文字列に変換しています。
「DecimalFormat」のコンストラクタでソースを指定します(インスタンスを作成する際にデフォルトコンストラクタを使うと、デフォルトのロケール、パターンを使う)。
「0」は数字を表しますが、その桁に満たない場合は「0」を付けます。
「#」も数字を表しますが、その桁に数字がない場合は何も表示しません。
先頭の「\u00a4」は通貨記号です。日本の場合は、「¥」が表示されます。
今回のポイント
toStringメソッドで数値を文字列に変換
数値を文字列に変換するにはtoStringメソッドを使用する
⚫︎ toStringメソッドで数値を文字列に変換することができ、Byte、Short、Integer、Long、Blog、Doubleの数値プリミティブ型を文字列に変換することができる
⚫︎ 進数を設定して数値型を文字列に変換するにはtoStringメソッドの第2パラメータに進数を指定する
⚫︎ 書式を指定して数値を文字列に変換する場合はDecimalFormatクラスを使用する
関連記事
文字列を数値に変換するparseXXXメソッドについてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。