次のプログラムは、という名前のファイルからテキストを読み取り、tes.txt
ファイル全体で同じウルドゥー語の文字列からプレーンな英語の文字列を分離します。これは、すべての英語の単語の後にスタンプとして機能します。ファイルは次のようになります:(ウルドゥー語の文字列は英語の文字列の後に続きます)
سٹیمپ ختم ہو جاتی ہے
suhail
سٹیمپ ختم ہو جاتی ہے
gupta
سٹیمپ ختم ہو جاتی ہے
ghazal
سٹیمپ ختم ہو جاتی ہے
Windowsを使用している間、私は次のプログラムをコンパイルします:
import java.io.*;
class checker {
public static void main(String args[]) {
try {
File f = new File("C:/Users/user/Desktop/tes.txt");
FileReader reader = new FileReader(f);
char buffer[] = new char[1024];
String text = "";
while( reader.read(buffer) > 0 ) {
text += buffer.toString();
}
String splits[] = text.split("سٹیمپ ختم ہو جاتی ہے");
for(int i=0;i<splits.length;i++) {
System.out.println(splits[i]);
}
} catch(Exception exc) {
exc.printStackTrace();
}
}
}
として。javac -encoding UTF-8 checker.java
しかし、このプログラムを実行すると、として出力が得られます[C@19b49e6
。どうしてこれなの ?また、配列から1つの文字列のみを出力します。バッファ配列の長さも確認しましたが、1つであることがわかりました。なぜ1つ(正規表現から分離した後にバッファに入るファイルに複数の文字列がある)ですか?どこで間違えたの?