■JAVAのテキストの取り出し方について質問がございます。
■テキストから一番最初の文字列を取り出したいのですが、どのような 方法があるか教えていただきたく参りました。
■テキストの名前は shokijii.texで 状態は
問題,回答番号,解説,0,文,1,文,2,文,3,文
問題,回答番号,解説,0,文,1,文,2,文,3,文
問題,回答番号,解説,0,文,1,文,2,文,3,文
となっております。
■今のところプログラムの記述は
BufferedReader br =null;
br =new BufferedReader(new FileReader(shokuji.txt));
■と定義していますが、テキストの最初の文字列を取り出すには
br =new BufferedReader(new FileReader(shokuji.txt));
↓
■ここの()内ので
どのように記述したら
よいでしょうか?
■また()内での定義にかからわらず、
・できそうな方法
テキストは調整可能ですので、
・テキストに付け加えこのように定義したら取り出せるよ
といった提案、意見などもございましたら、どうかお教えください。
お願い申し上げます。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>br =new BufferedReader(new FileReader(shokuji.txt));
br =new BufferedReader(new FileReader("shokuji.txt"));
としなければなりません。
FileReaderのコンストラクタ(の一つ)はStringでファイル名を受け取ります。
詳しくは、FileReaderクラスのコンストラクタを調べてください。
>テキストの最初の文字列を取り出すには
というのは、「,」で区切られた最初の文字列という意味ですね。
ならば、
String str = br.readLine();
で1行目を読んだあと、
String[] part = str.split(",");
とすると、part[0] に最初の文字列が part[1] に2番目の文字が...
というぐらいに分割されます。
詳しくは、Stringクラスのsplitメソッドを調べてください。
No.2
- 回答日時:
> br =new BufferedReader(new FileReader(shokuji.txt));
> ↓
> ■ここの()内ので
> どのように記述したら
> よいでしょうか?
BufferedReaderクラスのJavaDocを読むと良いですよ。
>■テキストから一番最初の文字列を取り出したいのですが、どのような 方法があるか教えていただきたく参りました。
「一番最初の文字列」の意味がわかりません。
が、
一番最初の行を読みたいなら、BufferedReaderクラスのreadLineメソッドを使えば良いかと。
一番最初の文字が読みたいのなら、↑で1行読んだあとに、StringクラスのcharAtメソッドを使えば良いかと。
「一番最初の文字列」が(テキストの内容がよくわかりませんが、もし、「CSV」になっているとして)最初のカンマまでの文字列なら、java.utilパッケージのStringTokenizerクラスを使うと良いですよ。
(もしくはStringクラスのsplitメソッドなど。)
返信遅くなり申し訳ありません。アドバイスありがとうございます。
charAt()メソッドがつかえそうです。Stringメソッドはいろいろありますので、それぞれを理解しうまく使えたらと思っております。
今後とも、アドバイスを宜しくお願い致します。
No.1
- 回答日時:
これが最後のアドバイスになるかと思いますが、もう一言の
私の考えを述べさせて頂きます。
質問者の方におかれましては、”MVCパターンの考え方”はおろか、残念ながら
”オブジェクト指向とは何か”という事に関しても理解が不足しているようです。
プログラミングにおいて、
”テキストファイルを処理して、n番目の問題のp番目の項目を取り出そう”
というようなコードを書くことは決して難しいことではありません。
しかし、この様な方法は、全く
”オブジェクト指向設計ではない”
という事を知っておく必要があります。
オブジェクト指向設計で行うべきことは、
>■テキストの名前は shokijii.texで 状態は
>
> 問題,回答番号,解説,0,文,1,文,2,文,3,文
> 問題,回答番号,解説,0,文,1,文,2,文,3,文
> 問題,回答番号,解説,0,文,1,文,2,文,3,文
>
> となっております。
もしも、この様なテキストファイルがあるのならば、
このテキストファイルから、問題集オブジェクトを生成(復元)することです。
そして、その復元された問題集オブジェクトから、適切なメソッドを使って
所望の問題オブジェクトを取得し、そこから、問題文を取り出します。
”ご自身で課題を考えてそれを解いてみよう”という方法が
必ずしも間違っているわけではないでしょうが、そもそもの課題が
適当なのかどうかを判断できるレベルの人が身近におられないとなると
正しい方向に進むことは難しいと思われます。
私は、具体的な文字列を取り出すようなソースコードを提供することはしません。
こう書くと、私に基本的なファイル処理の能力がないのだろうと感じられるかもしれません。
しかし私自身は、紙テープ,マークシート,8インチフロッピーディスクの時代から
コンピュータプログラミングを書いていたので、ファイル入出力のコードなどは、
山ほど書き捨ててきました。
オブジェクト指向設計の今の時代に、書き捨てのコードを書く気にならない
気持ちをご理解頂ければ幸いです。
この気持ちが解る様になったら、オブジェクト指向の発想が身に付いたと
言えるのかもしれません。
何度もアドバイスありがとうございます。
私のプログラムに対する知識のなさは、就職先に理由がありました。文字の世界とは不思議なものです。
私が上記のように言われるのも、予想しておりました。しかし、どなたかアドバイスしてくださるかと思い,迷いまがらも、この場で質問さえていただきました。
上記の回答者の方を含め、アドバイスをしてくださった方には感謝の気持ちでいっぱいです。
今までいくつかの言語が授業でありましたが、その中でJAVAは一番楽しめたかと思っております。難しいことにはかわらりありませんでしたが、しかし楽しんでできるか、できないかで理解は大きく違いますね。
余計な話を申し訳ありません。最後とは残念ですが、今までのアドバイス本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- 大学受験 資格試験などの勉強で過去問題集の解説を理解する時、分からない用語を調べてどうするのが良いですか? 問 3 2023/06/18 17:18
- 国家公務員・地方公務員 公務員試験の数的処理で苦戦しています。 1 2023/01/30 08:56
- 大学・短大 通信制大学の試験の不正行為について 私は通信制大学に通っており、先日オンラインテストを受けました。あ 2 2023/06/25 16:21
- 物理学 量子力学のテキストのフーリエ変換の記述について 1 2022/10/16 17:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- その他(Microsoft Office) Excelの条件付き書式についての質問です。 2 2022/09/08 01:25
- Evernote Evernote(エバーノート)の文字化け 1 2022/04/05 19:30
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
String型の日付(2005/11/25)の...
-
C# マルチスレッドにおける例外...
-
nullで、return出来るのはどん...
-
【JAVA】与えられた金額を貨幣...
-
スタックオーバーフローとは?
-
子プロセスで発生した例外を親...
-
文字列からダブルクオートの削除
-
例外ってIf文の中に入れますか...
-
VBA 400エラー 1004エラー
-
C++の例外処理について
-
Javaで文字列をゼロ埋め(ゼロパ...
-
文字列が数字のみで構成されて...
-
オープンアプリにおける、テキ...
-
0除算の例外処理ができない!!...
-
時間の取得
-
エクセルVBAで、条件に一致する...
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
c++,ある関数のクラスから別の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
連続する「\\」をひとつの「\\...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
数字か文字列かを判定する関数
-
例外ってIf文の中に入れますか...
-
C# マルチスレッドにおける例外...
-
スタックオーバーフローとは?
-
String型の日付(2005/11/25)の...
-
Timestamp型への変換について(J...
-
C# UriFormatExceptionの回避
-
VBA Evaluate関数 型が一致しま...
-
ADOによるレコードの追加/更新
-
時間の取得
-
WebClient()以外でネットにアク...
-
C#の捕捉されない例外処理の対...
-
タトゥーや墨を入れる人の共通点
おすすめ情報