レッスン with Java言語プログラミングレッスン このページをアンテナに追加 RSSフィード

2006-04-17

[] String.replaceのドキュメントを読んでみる。

ShowFile1で「ファイル中のタブを半角空白×2に変換してから表示したい」と思い、whileループ内に一行追加してみました。

      while ((line = reader.readLine()) != null) {
        line.replace("\t", "  ");
        System.out.println(line);
      }
E:\study\18>javac ShowFile1.java
ShowFile1.java:15: java.lang.String の replace(char,char) は (java.lang.String,j
ava.lang.String) に適用できません。
        line.replace("\t", "  ");
            ^
エラー 1 個

あてずっぽじゃダメみたいです。ということで、いよいよドキュメントを読んでみます。まず、java.langStringクラスのメソッド

String replace(char oldChar, char newChar)
     この文字列内にあるすべての oldChar を newChar に置換した結果生成される、新しい文字列を返します。
String replace(CharSequence target, CharSequence replacement)
     リテラルターゲットシーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。
String replaceAll(String regex, String replacement)
     指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。
String replaceFirst(String regex, String replacement)
     指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行します。

「replace(CharSequence target, CharSequence replacement)」がやりたいことに近い様子。次にCharSequenceを調べてみます。

既知の実装クラスの一覧: 
     CharBuffer, String, StringBuffer, StringBuilder 

あれ、Stringが入っていますね。だとすると、「replace(String,String)」は「replace(CharSequence,CharSequence)」だとみなされても良さそうですが。

気になる点というと、実は勉強場所を転々と変えていて、勉強環境もjava 1.5だったりjava 1.4.2だったりします。今使っているのが1.4.2_11で、このドキュメントは1.5のものなので、その違いでしょうか?

ここでは「ドキュメントを読む感覚が分かった」ということにしておいて、変換については、ひとまず保留。

とおりすがりサボリーマンとおりすがりサボリーマン 2011/12/08 11:36 1.4の場合はエラーになりますね。
StringUtilsとか覚えるとあとあとラクですよ〜

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/jwalrus/20060417/1145242073