ところで、使った言語はJavaだったのですが、Javaはなんとなく文字列処理が苦手なイメージがありますね。とりあえず、与えられた文字列は全部配列に入れちゃえばなんとかなりそう!と単純な思考で、読み込むファイルを指定すると、文字列を行と空白に分けて配列格納してくれるという簡単なプログラムを書いてみました。と、これじゃあよくわからないので、コードを以下に。
SampleProg.java
public ArrayList<ArrayList<String>> fileReader() {
try {
ArrayList<ArrayList<String>> allStr = new ArrayList<ArrayList<String>>();
File file = new File(FILEPATH);
Scanner sc = new Scanner(file);
while(sc.hasNext()) {
ArrayList<String> lineStr = new ArrayList<String>();
String tmpStr = sc.nextLine();
Scanner lineSc = new Scanner(tmpStr);
while(lineSc.hasNext()) {
lineStr.add(lineSc.next());
}
allStr.add(lineStr);
lineSc.close();
}
sc.close();
return allStr;
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
FileRW frw = new FileRW();
System.out.println(frw.fileReader("test.txt"));
System.out.println(frw.fileReader("test.txt").get(3));
System.out.println(frw.fileReader("test.txt").get(3).get(2));
}
テキストを読み込むと
test.txt
fas gfe
gagb wryj hyetrs
gwvsrgbwtrb
bw rb wr stb
wetgw twh dfgwetrrwhrw
hwth whrw thtwr
こんな感じに出力されます。
[[fas, gfe], [gagb, wryj, hyetrs], [gwvsrgbwtrb], [bw, rb, wr, stb], [wetgw, twh, dfgwetrrwhrw], [hwth, whrw, thtwr]]
[bw, rb, wr, stb]
wr
リソース食いまくりですが、わかりやすいかと(笑)
サンプルコードちょっと変えれば、ライン毎に処理出来たりするので、例えば空白抜きの文字数調べるのとか、マッチングには使えるんじゃないかな、と思います。