![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんばんは、今回はtrim()メソッドの使用方法とキャストの方法についてお伺い致します。
trimメソッドを使用して文字列の前後の空白を削除したいのですが、
通常
String str = " 「こんにちは」";
str = str.trim();
とコーディングしコンパイルして表示するとちゃんと「こんにちは」となるのすですが、これが
ArrayList list = new ArrayList();
BufferedReader br=
new BufferedReader(new FileReader(Test.txt);
while((str = br.readLine()) !=null){
str = str.trim();
list.add(str);
}
br.close();
とコーディングしコンパイルは通るのですが、 「こんにちは」のままで"「"の前にある空白が削除されてません。
私なりに「型」の違いでが原因ではないかと思い、java.io.ArrayList型からjava.lang.String型へキャストしようとしているのですが、コンパイルエラーが出てしまします。
プログラムコードは
ArrayList list = new ArrayList();
String s;
s = (String)list;
としています。
エラー内容は
ScheduleControlCall.java:142: 変換できない型
出現: java.util.ArrayList
要求: java.lang.String
s = (String)list;
^
エラー 1 個
となっています。
度々ですが、ご指導お願い致します。
No.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();」の直後に入れてみれください。空白が除去されているはずです。
No.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つ目の要素(この場合は「お早う」と「おやすみ」のみ)から書き出すのを目的としています。
お手数ですが、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VB.Net Object型 空かどうか
-
SQLException getNextException()
-
WebClient()以外でネットにアク...
-
VBA 400エラー 1004エラー
-
グローバル初期化されるインス...
-
C# マルチスレッドにおける例外...
-
初回例外
-
VBA Evaluate関数 型が一致しま...
-
メソッドが存在するかどうかの...
-
サーブレットからJSPの呼び出し...
-
スタックオーバーフローとは?
-
C#についての質問です。今週中...
-
オープンアプリにおける、テキ...
-
ADOによるレコードの追加/更新
-
C# 2010 レジストリのRUNに...
-
Timestamp型への変換について(J...
-
おススメのJavaScriptエディタ
-
例外の可能性は、MSDNライブラ...
-
Bean→JSPでの文字化け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
時間の取得
-
VB.Net Object型 空かどうか
-
連続する「\\」をひとつの「\\...
-
数字か文字列かを判定する関数
-
String型の日付(2005/11/25)の...
-
VBA Evaluate関数 型が一致しま...
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
文字列が数字のみで構成されて...
-
Timestamp型への変換について(J...
-
例外ってIf文の中に入れますか...
-
全角スペースのチェックについて
-
ファイルダイアログを開いた時...
-
C# マルチスレッドにおける例外...
-
VBA 400エラー 1004エラー
-
nullで、return出来るのはどん...
-
C#の捕捉されない例外処理の対...
-
C# UriFormatExceptionの回避
おすすめ情報