- ベストアンサー
trim()メソッドの使用方法とキャストの仕方について
- trim()メソッドを使用して文字列の前後の空白を削除する方法について質問があります。
- また、ArrayListからStringへのキャストについても困っています。
- ご指導いただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
この場合RandomAccessFileは関係ないので、置いておきましょう。ただ気になる点は >String s = (String)list.get(2); >while((s = raf.readLine()) !=null){ これだと、get()で取得したStringが、使われないままreadLine()で上書きされてしまいます。 >String str = " 「こんにちは」"; >str = str.trim(); >System.out.println(str); strはファイルから読み込むのではないのですか? とりあえず、「System.out.println(str);」を元のコードの「str = str.trim();」の直後に入れてみれください。空白が除去されているはずです。
その他の回答 (1)
> 「こんにちは」のままで"「"の前にある空白が削除されてません。 それはどうやって確かめたのですか。結果を表示するコードがないようですが。 ArrayListから値を取り出すには、たとえば次のようにキャストします。 (String)list.get(0) ここでget(n)はn番目(0=先頭)の要素を取り出すメソッドです。get()の返値はObject型なので、元の型(この場合はString)へのキャストが必要です。 また、trim()で空白が除去されないとしたら、その空白が全角になってはいませんか。
補足
amajun様早速のご回答有難う御座いました。 >それはどうやって確かめたのですか。結果を表示するコードがないようですが。 String str = " 「こんにちは」"; str = str.trim(); System.out.println(str); のように結果を表示しております。 >また、trim()で空白が除去されないとしたら、その空白が全角になってはいませんか。 確認しましたが、半角の空白でした。 ArrayListからの読み込みの仕方はこんな感じで宜しいのでしょうか。 BufferedReader br = new BufferedReader(new FileReader(Test.txt)); while((str = br.readLine()) !=null){ str = str.trim(); list.add(str); ・・・・ RandomAccessFile raf = new RandomAccessFile(Test.txt,"rw"); raf.seek(2); String s = (String)list.get(2); while((s = raf.readLine()) !=null){ System.out.println(s); } Test.txt内には 「こんにちは」 「お早う」 「おやすみ」 の内容が入っています。 ここのプログラムでは初めにTest.txtの内容を読み込みlist(ArrayListオブジェクト)に格納する前にtrimメソッドを使用して要素の前後にある空白を取り除き、格納されている内容を2つ目の要素(この場合は「お早う」と「おやすみ」のみ)から書き出すのを目的としています。 お手数ですが、宜しくお願い致します。
お礼
お礼が遅くなり申し訳ありませんでした。 大変参考になるご意見ありがとうございました。