从绝对路径获取名称,从最后一个斜杠获取子字符串,java android
我想提取绝对路径的名称。如果我有一个值为/mnt/sdcard/Videos/Videoname的字符串,我想保存一个值为Videoname的字符串 字符串正在更改,我以前无法获得斜杠数。如何从最后一条斜线中拆分子字符串 /mnt/SD卡/视频/视频名称-->视频名称 如果从“文件”对象获取If,可以使用以下方法获取:从绝对路径获取名称,从最后一个斜杠获取子字符串,java android,java,android,file,Java,Android,File,我想提取绝对路径的名称。如果我有一个值为/mnt/sdcard/Videos/Videoname的字符串,我想保存一个值为Videoname的字符串 字符串正在更改,我以前无法获得斜杠数。如何从最后一条斜线中拆分子字符串 /mnt/SD卡/视频/视频名称-->视频名称 如果从“文件”对象获取If,可以使用以下方法获取: String fileName = myFile.getName(); 如果你从一个简单的字符串中得到它,你可以使用 String fileName = myString.su
String fileName = myFile.getName();
如果你从一个简单的字符串中得到它,你可以使用
String fileName = myString.substring(myString.lastIndexOf("/")+1);
你应该通过api。引自文件:
返回由该抽象路径名表示的文件或目录的名称。这只是路径名名称序列中的姓氏。如果路径名的名称序列为空,则返回空字符串
例如:
String name = new File("/mnt/sdcard/Videos/Videoname").getName();
但是,通过进一步的研究,下面的代码可以工作
String[] Tokens = stringPath.split("\\\\");
你需要逃避“\”两次。最简单的方法是
String path ="AnyDirectory/subFolder/last.htm";
int pos = path.lastIndexOf("/") + 1;
path.substring(pos, path.length()-pos);
现在在路径字符串中有了最后一个.htm。string name=“/mnt/sdcard/Videos/Videoname”;字符串newName=name.substring(name.lastIndexOf(“/”)+1,name.length());按照此链接,找到与您的问题类似的已回答问题-1.字符串版本错误,
“/mnt/sdcard/Videos/Videoname”
将返回“/Videoname”
。按照我的建议使用文件API,例如新文件(“/mnt/sdcard/Videos/Videoname”).getName(),它将返回正确的“Videoname”
。没错,我忘了在索引中添加+1。。。但是,可以肯定的是,“文件”版本要更好一些;)实际上,问题是关于前斜杠/
而不是反斜杠\
。
String path = "/mnt/sdcard/Videos/Videoname"; // Your path
String fileName = new File(path).getName(); // you file name
String path ="AnyDirectory/subFolder/last.htm";
int pos = path.lastIndexOf("/") + 1;
path.substring(pos, path.length()-pos);