週15教室の演習 - 最長のワードチェーンを見つけます

(1)デザインのアイデアを:いくつかの配列を定義します。

すべての単語を格納するために使用される単語の配列、

2配列の長さ:すべての単語の先頭を格納するために使用される長さ、単語チェーン

3つの結果アレイ:各鎖からの単語で始まる単語を格納するために使用

ワード鎖と各クエリ語、その結果を標準に対応する配列の列から上記配列に格納され、その後、配列の長さから、添え字の最大数を抽出し、出力されます。

(2)ソースコード:

 
 

パッケージFILEREAD。

 
 

輸入java.io.BufferedReader;
インポートのjava.io.File;
輸入java.io.FileOutputStreamは、
輸入java.io.FileReader。
インポートにjava.io.OutputStream;

 
 

パブリッククラスtext15 {

 
 

静的な無効メインパブリック(文字列[] args)を{
// TODO自動生成されたメソッドスタブ\
試し{
BufferedReaderのリーダーBufferedReaderの新しい新=(FileReaderの新新( "C:\\で名付けTEXT.TXT"));
StringBufferのStringBufferの新しい新しいString =() ; //全内容を保存するためにさらに修飾することができるStringBufferクラスのオブジェクトを使用する
文字列ライン= NULL;
(!(= reader.readLineライン())= NULL)しばらく{
string.append(ライン);
}
文字列STR = ()toLowerCaseメソッドを().toString ;. // たStringBufferと小文字に切り替え
列[]ワード= str.split( " [^(-ZA-Z)] +"); // 正規表現点単語の配列で
更にINT、前に検出された単語インデックス@に対応する
INT [] =長新しい新しいINT [words.length]; //配列の長さを保存する
文字列[]結果=新しいString [ words.length]; // 結果の配列
{(; Iはlength.lengthを<I ++はI = 0の整数)のための
長さ[I] = 1;
}
(; Iはwords.lengthを<; I = 0をint型Iは++)のために{
[I]結果=言葉[I] + "";
更に= Iが; //インデックスワードは、さらに第一の検出に割り当て続けられます下向きの検出
のために(INT I = J + 1、J <words.length; J ++){
。IF(単語[また] .charAt(単語[また] .LENGTH() - 1)==ワード[J] .charAt( 0)){
結果[I] =結果[I] +言葉[J] + ""; //プラス現在の結果セットのワード
長[I] ++; //長さプラス
さらなる= J; //現在の検出前なる
}
}
}
//配列の長さ見つける
INT MAXLENGTH = 0; //記録最大配列長
INT MAXNUM = 0;配列の添字、すなわちからの最大数に対応する//レコード長長さの最初のいくつかの単語の長さ
<; {(length.length I ++のためには、私はI = 0 INT)
IF(長さ[I] MAXLENGTH){>
MAXLENGTH =長さ[I]は、
MAXNUM = I;
}
}
//この場合、結果[MAXNUM]コンテンツを出力する
場合(MAXNUM == 1){
System.out.println(「という言葉は、端と端が接続されていません」);
}そうでなければ{
ファイルファイル=新しい新しいファイル(「C:\\ result.txt」);
// FileOutputSteamファイルを充填し、そのファイルが新たに追加することができる
外のOutputStream =たFileOutputStream新しい新しい(真のファイル);
out.write([MAXNUM] .getBytes()の結果); //書き込みデータファイルへ
reader.Close();
out.close();
}
}キャッチ(例外E)
{
e.printStackTrace();
}
}
}

 

(3)業績:

TEXT.TXTファイル(「風と共に去りぬ、」第一章):

result.txtファイル:

(4)まとめ:コード内の二重ループの使用は、コード実行はるかに長い時間を作るので、私は1つのサイクルによって得られた結果を取得する方法がありません。

 

おすすめ

転載: www.cnblogs.com/123456www/p/10990070.html