ファイルの完全なパスからファイル名を取得したい。 入力: "D:// AMOL // 1/\ 15_amol.jpeg" 予想される出力:15_amol.jpegJavaで(バックスラッシュ)を使用する部分文字列
私はこの
public class JavaApplication9 {
public static void main(String[] args) {
String fname="D://amol//1/\15_amol.jpeg";
System.out.println(fname.substring(fname.lastIndexOf("/")));
System.out.println(fname.substring(fname.lastIndexOf("\\")));
}
}
が、出力の下に取得するためのコードの下に書かれている:
_amol.jpeg
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: -1
at java.lang.String.substring(String.java:1927)
at javaapplication9.JavaApplication9.main(JavaApplication9.java:6)
C:\Users\lakhan.kamble\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53:
Java returned: 1
あなたがエスケープする必要が例外を発生させ、-1を返して元のStringリテラルのバックスラッシュだから 'String fname =" D:// amol // 1/\\ 15_amol.jpeg ";'タイプミスとしてこれを閉じる投票。 –
'File.getName()'はあなたのためにこれを行います(あなたが入力ミスを修正した後)。車輪を再構築しないでください。 'System.out.println(新しいファイル(" D:// amol // 1/\\ 15_amol.jpeg ").getName());' –