勝手に Java リファレンス / 文字列

戻る

String (文字列定数) と StringBuffer (可変文字列)
文字列といって、まず最初に思いつくのはString型ですが、Javaでは、

  • 文字列を定数として使うなら、String型を使い
  • ファイルを順に読み込んでバッファに入れる、など、後から編集、拡張する場合は、StringBuffer型の文字列を使う

のがいいと思います。StringBuffer型では、後からの変更時の無駄が少ないようです。


String型の使い方
  • 部分文字列の取得
    String#substring メソッドを使います。

  • 文字の長さ(length)

    String s = "abc";
    int i = s.length(); // i には3が返る

  • 文字の検索
    String#indexOf( String substr ) メソッドを使います。

  • 文字列の結合
    String s = "abc".concat("def"); // java.lang.string.concat を使う
    String s = "abc" + "def"; // String 同士なら + 演算子を使って結合できる。

  • 文字列同士の比較
    boolean B = String.equals(String s);
    // 等しい場合は、true、異なる場合は、falseが返ってきます。

    メモ ----
    WEBの入力フォームから空の文字列がPOSTされると、JSPで request.getParameter()で取得した値には、nullが返されます。したがって、比較時は下のことが言えます。
    (誤) if ( request.getParameter("test") != "" ){ out.println("文字が入力されました。") };
    (正) if ( request.getParameter("test") != null ){ out.println("文字が入力されました。") };

    また、WEBの入力フォームから、複数値を持つパラメータがPOSTされる場合、JSPでは、request.getParameters()で値を取得しますが、ここで未入力のままブラウザから送信すると、getParameters() メソッドで取得される String[] 型の値は、添え字0に長さゼロの文字列("")がはいっているだけのものが返ります。

    つまり、入力チェック時は、このことに注意しなければなりません。