質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1938閲覧

javaでテキストファイルから特定のキーワード(10こほど)が入った文を抜き出し、表示させる方法

takasu8

総合スコア15

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/12/16 10:48

javaでテキストファイルから特定のキーワード(10こほど)が入った文を抜き出し、表示させる方法がわからないです。できればコードを教えてもらえると助かります。

自分の中で考えてる流れとしては
①ファイルを読み込む
②読み込んだファイルを1文ごとにキーワードがあるか確認
③キーワードがあった文を表示

補足、複数のキーワードのうち1つでも入っていたらその文を取り出す。

わからない点は、どうやってキーワードが入っているか確認するかです。キーワードが1つの場合containsを使えば行けると思うのですが、複数確認するのはわかりません。

あと①の段階で一文ずつ配列に入れるべきですか。また読み込む際、textファイルで1つの文章が2段に分かれている場合どうやって一文であるかを判断すべきですか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のような感じでしょうか。細かいところは要件に合わせて変更して頂ければと思います。

Java

1String keywords[] = {"AAA", "BBB", "CCC"}; 2 3File file = new File("test.txt"); 4BufferedReader br = new BufferedReader(new FileReader(file)); 5 6String str = ""; 7while ((str = br.readLine()) != null) { 8 for (int i = 0; i < keywords.length; i++) { 9 if (str.contains(keywords[i])) { 10 System.out.println(str); 11 } 12 } 13} 14br.close();

>わからない点は、どうやってキーワードが入っているか確認するかです。キーワードが1つの場合containsを使えば行けると思うのですが、複数確認するのはわかりません。
⇒ やり方は様々かと思いますが、上記はキーワードの入った配列を用意して実現する例になります。

>あと①の段階で一文ずつ配列に入れるべきですか。また読み込む際、textファイルで1つの文章が2段に分かれている場合どうやって一文であるかを判断すべきですか。
⇒ これは一文の定義次第ですね。(句読点が来るまでを一文とする、とか)
上記例は対応していないです。

投稿2018/12/16 11:05

aikon_marimo

総合スコア1083

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takasu8

2018/12/16 11:23

解答ありがとうございます。 2つほど質問があります。 ①1つの文に複数のキーワードがある場合、同じ文章を複数抜き出すと思うのですが1回抜き出したものはもう抜き出さないようにしたいです。どのようなコードになるでしょうか ②1つの文章を句読点などで判断するのはreadline()ではかけないのでしょうか。
aikon_marimo

2018/12/16 11:31

>①1つの文に複数のキーワードがある場合、同じ文章を複数抜き出すと思うのですが1回抜き出したものはもう抜き出さないようにしたいです。どのようなコードになるでしょうか ⇒ それは上記を少し直せば簡単なので、ご自身で勉強がてら頑張ってください。 >②1つの文章を句読点などで判断するのはreadline()ではかけないのでしょうか。 ⇒ "など"と言われると仕様が不明瞭なので何とも言えませんが、1文が必ず句読点で区切られているとするならば、句読点が来るまでreadLine()で読み込んだ文字列を連結していけば実現できます。 (改行コードを含めるかだったり、1行の途中に句読点が来た場合はそこまでの部分文字列を取得するなど、考慮すべき箇所はいくつかありますが)
takasu8

2018/12/16 11:46

解答ありがとうございます???? 頑張ってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問