プログラミングの用語一覧へ
このページの目次
プログラミング中級図解あり

String.valueOfとは?

読み方:string.valueof

最終更新:2026/08/18

3秒でわかる

Java で値を文字列に変換する静的メソッド。null を渡しても例外にならず文字列 null が返る点が、toString との実務上の差になります。

30秒図解

JavaでObject型の変数nothingにnullを入れてString.valueOfに渡すと文字列nullを返す一方、nothing.toStringはNullPointerExceptionになる
Object 型の null を変数経由で渡すと、String.valueOf は例外を出さず文字列にする

もう少し詳しく

どういうものか

String.valueOf は、Java の String クラスに定義された静的メソッドで、渡された値を文字列に変換して返します。int long double char boolean といった基本と、Object を受け取るものが多重定義されており、どの型を渡しても呼び出す形は同じです。

Object 版の中身は「引数null なら文字列 "null" を返し、そうでなければ toString() を呼ぶ」という実装です。この 1 行の違いが、実務で toString() との使い分けを決めます。

なぜ必要か

Java は型に厳しく、int をそのまま String変数に代入できません。画面表示、ログ出力、CSV への書き出し、SQL のパラメータ組み立てなど、値を文字列にして外に出す場面は避けられず、その入口として使います。

さらに大きい理由が null 安全です。DB から取得した値やリクエストのパラメータは null になり得ます。obj.toString()null に対して NullPointerException を投げますが、String.valueOf(obj) は例外を出さずに "null" を返します。値の有無が保証できない場所ではこちらが安全です。

具体例

int count = 42; double price = 1980.5; boolean isNew = true; Object nothing = null; String s1 = String.valueOf(count); // "42" String s2 = String.valueOf(price); // "1980.5" String s3 = String.valueOf(isNew); // "true" String s4 = String.valueOf(nothing); // "null" (例外にならない) // nothing.toString() は NullPointerException になる // char <a href="/glossary/array" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">配列</a>を渡すと 1 文字ずつ連結される (Object 版とは結果が違う) char[] chars = {'J', 'a', 'v', 'a'}; System.out.println(String.valueOf(chars)); // Java

似た用語との違い

書き方null のとき備考
String.valueOf(x)"null" が返る例外にならない
x.toString()NullPointerExceptionx がオブジェクトのときのみ
Integer.toString(n)基本型なので該当なしint 専用で最も直接的
"" + x"null" が返る内部で StringBuilder が作られる


つまずきやすいところ

  • char[] を渡したときだけ挙動が違う。String.valueOf(chars)"Java" になりますが、同じ配列を Object として渡すと [C@1b6d3586 のような参照表現になります

  • null"null" という 4 文字の文字列になることを見落とす。画面に「null」と表示されたり、その文字列がそのまま DB に保存されたりします。空文字にしたい場合は Objects.toString(x, "") を使います

  • 数値を文字列にしてから比較する。String.valueOf(10)String.valueOf(9) を辞書順で比べると "10" のほうが小さくなります。大小の比較は数値のまま行います

  • 独自クラスに toString() を実装しないまま渡し、クラス名とハッシュ値が出力される。ログに使うクラスは toString() を上書きしておきます
  • 覚え方

    null が来るかもしれない場所は String.valueOf、絶対に来ない場所は toString()。迷ったら前者にしておけば落ちません。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地String.valueOfプログラミング

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    この用語を扱うコース

    コース

    Java入門:基礎文法編

    69レッスン
    コース

    Java Silver対策

    55レッスン
    コース

    Java 中級:コレクション・Stream・例外処理

    64レッスン
    Javaコースの全編を見る