1. ホーム
  2. java

[解決済み] Javaでこの文字列をパースするには?

2022-03-06 10:37:48

質問

<ブロッククオート

prefix/dir1/dir2/dir3/dir4/...

のパース方法 dir1, dir2 の値は、Javaで上記の文字列のうち?

ここでの接頭辞は、次のようになります。

/usr/local/apache2/resumes

解決するには?

を分割したい場合 String/ という文字があれば String.split というメソッドが動作します。

例えば

String s = "prefix/dir1/dir2/dir3/dir4";
String[] tokens = s.split("/");

for (String t : tokens)
  System.out.println(t);

出力

prefix
dir1
dir2
dir3
dir4

編集

のあるケースは / を使えば、その接頭辞が何であるかがわかる。

String s = "slash/prefix/dir1/dir2/dir3/dir4";

String prefix = "slash/prefix/";
String noPrefixStr = s.substring(s.indexOf(prefix) + prefix.length());

String[] tokens = noPrefixStr.split("/");

for (String t : tokens)
  System.out.println(t);

接頭辞を除いた部分文字列 "slash/prefix/" が作られます。 substring メソッドを使用します。その String が実行され split .

出力します。

dir1
dir2
dir3
dir4

再度編集する

もし、この String が実際にファイルパスを扱っている場合は File クラスの方が、文字列操作よりも望ましいでしょう。のようなクラスは File ファイルパスの扱いの複雑さをすでに考慮に入れている、より堅牢なものになるでしょう。