ディレクトリを表す文字列があり、\
フォルダを区切るために使用されます。に基づいて分割したい"\\"
:
String address = "C:\\saeed\\test";
String[] splited = address.split("\\");
しかし、これは私にjava.util.regex.PatternSyntaxException
.
他の人が示唆しているように、次を使用できます。
String[] separated = address.split("\\\\");
または、次を使用できます。
String[] separated = address.split(Pattern.quote("\\"));
また、参考までに:
String address = "C:\saeed\test";
\s
は有効なエスケープ シーケンスではないため、コンパイルされません。\t
これはタブ文字として解釈されます。実際に必要なのは次のとおりです。
String address = "C:\\saeed\\test";
これで、 を で取得する\
にはString
、 が必要であることがわかりました"\\"
。
バックスラッシュは正規表現の特殊文字であるため、正規表現は\\
単一のバックスラッシュと一致するため、エスケープ\
する必要があります。これを引用符で囲んだり、 に変換したりしたら、String
各バックスラッシュをエスケープして、 を生成する必要があります"\\\\"
。
String#split()
メソッドは正規表現を取ります。正規表現では、バックスラッシュをエスケープする必要があります。Java の文字列リテラルでは、バックスラッシュをエスケープする必要があります。全部で 4 つのバックスラッシュを使用する必要があります。
String[] splited = address.split("\\\\");
\
正規表現の一部として意味があるため、これも引用する必要があります。試してみてください\\\\
。
Java には atがあり、正規表現プロセッサが取得する必要があるもの\\\\
を生成します。\\
\
\\\\
の代わりに使用する必要があります\\
。
バックスラッシュ (\) は Java Strings のエスケープ文字です。バックスラッシュをリテラルとして使用する場合は、\\\\ と入力する必要があります。\ は正規表現のエスケープ文字でもあるためです。
詳細については、ここをクリックしてください
区切り記号を使用する:
String address = "C:\saeed\test";
String[] splited = address.split(System.getProperty("file.separator"));