文字列の分解



今回は、文字列の分解について考えてみましょう。例えば、ファイルのパスがあっているかどうか を確認してみましょう。例えば、D:\javafile\test\test.txtというファイルがあったとしましょう。 (これはWindowsベースです。しかもフルパスです)これが本当にあるかどうかを調べる場合 どうしますか?プログラムのディレクトリがD:のどこかにあるとします。

こういう時は、D:の中の…javafileディレクトリの中の…と調べないといけませんよね。 (そのままFileクラスでオブジェクトを作るなんて事は考えないでください) だとすると、邪魔なものは"\"ですね。"\"で区切れればディレクトリの存在を調べることが できます。ディレクトリを作る時は、

File file = new File("D:");

とすると、Dドライブの直下のディレクトリが調べられますね。しかし、実際にある文字列は D:\javafile\test\test.htmlです。このような時にStringTokenizerクラスが役に立ちます。 次のようにすると…。

String f_list[];
String next_directory;
String path = "D:\javafile\test\test.txt";

StringTokenizer st = new StringTokenizer(path,"\\");//\マークはエスケープシーケンスです

File file = new File(st.nextToken());//初めの単語名のファイルオブジェクトを生成

if(file.isDirectory()){
     f_list = file.list();
     for(int i = 0; i < f_list.length;i++){
          next_directory = st.nextToken();
          if(f_list[i].equals(next_directory)){
               System.out.println("ありました");
          }
     }
}
else{
     System.out.println("ディレクトリじゃないです");
}

とすると、次のjavafileディレクトリが見つけられるはずです。これを繰り返して目的のファイルを 探します。と言ったように、他のことでもこの方法を使えば何かを探すということもできます。 例えば、テキストエディタの「検索」機能とか…。また、"\"でなくても、スペースとか","とか 何でも単語に分割する時の目印にできます。

前へ
次へ
戻る