ソフトウェア演習Ⅲ〔課題 1:文字列処理〕 担当:青野雅樹 http://www.kde.cs.tut.ac.jp/~aono/data/jp/ 以下に 10 種類の日本語のニュース記事ファ イル(UTF-8 符号, ファイル名=jnewsX.txt(X=0~9))を置いている。学籍番号の末尾と X とが一致するニュースを選び、これを自分の作業フォルダにダウンロードせよ。次に、その ニュース記事ファイルを読込み、ニュース記事内に含まれる 2 文字以上続く「カタカナ文 字列」 (および、ニュースに含まれるような全角の「ー」を 2 文字目以降に含む)を書き出 す Java プログラムを作成せよ。カタカナ単語の書き出す順序は問わない。出力の先頭に氏 名・学生番号等を書き出すこと。締切は 10 月 14 日(火)の夜までとする。 なお、余裕のある人は、カタカナ語のカウント出力を試みよ(こちらは7回の課題全体で、 最終的な採点時にボーナス点として加算する) コメントとヒント: ここでの「カタカナ文字列」とは、全角カタカナが 2 文字以上続くものだけとします。全 角カタカナは'ァ'(小さい「ア」: 整数値 12449=16 進数 0x30A1)から'ヶ'(小さい「ケ」: 整数値 12534=16 進数 0x30F6)までが Unicode で連続しており、その間にすべての全角カタ カナは含まれます。これに 2 文字目からは「ー」(整数値 12540=16 進数 0x30FC)を加えて ください。 課題枠内がニュース記事とすると、 「ニュース」5 回 「ファイル」3 回 「カタカナ」2 回 「プログラム」1 回 「カウント」1 回 「ダウンロード」1 回 「フォルダ」 1 回 出力されればいいことになります。 『ヒント』:String クラスの関数 s.length()(長さ)や s.charAt(i)(文字列 s の i 番目の文 字)などの関数を駆使してください。行単位の読込みは、プログラム 1-8 で示した BufferedReader クラスの readLine()関数で、行単位で String データをファイルから読込 み、その長さ(s.length())だけ、char x = charAt(i)で文字をチェックし、これが x >='ァ' && x <= 'ヶ'で 2 文字目以降では x=='ー'かどうかもチェックし、2 文字以上のカタカナ語を見 つけてください。あとは同様に、カタカナ語が 2 文字以上続く間、String クラスの+(文字 列の連結演算)で追加し、カタカナ語以外がきたら、String のオブジェクトをプリントす るという手法が考えられます。(カウントする場合は、Map クラス等を適宜利用ください)
© Copyright 2024 ExpyDoc