テキスト ファイル内の特定のテキスト行を検索したい。探しているテキストが特定の行にある場合は、その行をさらに読み込んでさらに入力したいと思います。
これまでのところ、探しているタグが 3 つあります。
@public
@private
@virtual
行にこれらのいずれかが見つかった場合、次に何が来るかを読みたいので、たとえば次のような行を作成できます。
@public double getHeight();
発見したタグ@public
が 問題は、これを過度に使用することなくこれを行う効率的な方法を実際に考えることはできないということですcharAt(..)
。どちらも見栄えはよくありませんが、大きなファイルや連続した複数のファイルの場合、長期的にはおそらく良くありません。
現在、これをどのように行うか理解できないため、これを効率的に解決するのに役立ちたいと思います。コード自体は、C++ ファイル内のコメントを解析し、後でヘッダー ファイルを生成するために使用されます。疑似コードの部分は、私が立ち往生している場所です。BufferedReader を提案する人もいれば、Scanner と言う人もいます。Scanner を使用したのは、BufferedReader の代わりと思われるためです。
public void run() {
Scanner scanner = null;
String filename, path;
StringBuilder puBuilder, prBuilder, viBuilder;
puBuilder = new StringBuilder();
prBuilder = new StringBuilder();
viBuilder = new StringBuilder();
for(File f : files) {
try {
filename = f.getName();
path = f.getCanonicalPath();
scanner = new Scanner(new FileReader(f));
} catch (FileNotFoundException ex) {
System.out.println("FileNotFoundException: " + ex.getMessage());
} catch (IOException ex) {
System.out.println("IOException: " + ex.getMessage());
}
String line;
while((line = scanner.nextLine()) != null) {
/**
* Pseudo Code
* if @public then
* puBuilder.append(line.substring(after white space)
* + line.substring(until and including the semicolon);
*/
}
}
}