1

ここにパターンがあります。たとえば、ファイルは「BeginText」のようなテキストで始まり、「EndText」のような別のテキストがあります。これらの2つのテキスト/文字列内にあるファイルコンテンツが必要です.Javaでこれを行うにはどうすればよいですか?ファイルの内容は部分的に XML と混合されているため、通常のテキストと XML の両方が含まれているため、ここでは XML/DOM パーサーを使用できません。Java でこれを行う方法はありますか?

ここでJavaスキャナーを検討しています。他にアイデアがあれば、それは素晴らしいことです。

4

3 に答える 3

2

組み込みの文字列メソッド「indexOf」と「subString」を次のように組み合わせて使用​​します。

//read file to string using our utility method
String text = readFileContents("pathToTargetFile");

//find start index
int startIndex = text.indexOf("BeginText");

//find end index from start index.
int endIndex = text.indexOf("EndText",startIndex);

//grab the sub string of the text between these two values.
String targetText = text.subString(startIndex,endIndex);





//private utility method, reads file contents and returns as a string
private String readFileContents(String filePath){

BufferedReader reader = new BufferedReader( new FileReader (new File(filePath)));
String         line = null;
StringBuilder  stringBuilder = new StringBuilder();
String         ls = System.getProperty("line.separator");

while( ( line = reader.readLine() ) != null ) {
    stringBuilder.append( line );
    stringBuilder.append( ls );
}

return stringBuilder.toString();
}

これにより、望ましい結果が得られるはずです。

于 2013-03-06T13:25:31.087 に答える
1

使ってみてはどうですかString.indexOf(String)

int start = s.indexOf("BeginText");
int end = s.indexOf("EndText");
String content = s.substring(start + "BeginText".length(), end);

ファイルの内容はどこsですか

start が end の前にあるかどうか、および両方の値がそうでないかどうかを確認する必要があり-1ます。

于 2013-03-06T13:16:56.070 に答える
0

Javaパターン マッチングと正規表現を使用して、開始文字と終了文字のインデックスを決定します。それらを取得したら、コンテンツを取得します。

于 2013-03-06T13:18:10.697 に答える