java代码实现从路径字符串中获取文件名称
比如:Stringstr="c:/win/good/aaa.txt";如何得到"aaa.txt"补充一下:这个str的形式可能是:Stringstr="c:/win/go...
比如:String str = "c:/win/good/aaa.txt";如何得到"aaa.txt"
补充一下:这个str的形式可能是:String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";现在需要的是三个str了就是"aaa.txt","bbb.txt","cccc.txt" 展开
补充一下:这个str的形式可能是:String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";现在需要的是三个str了就是"aaa.txt","bbb.txt","cccc.txt" 展开
4个回答
展开全部
这道题主要就是利用了String类的split()方法,进行多次调用,已经帮你实现了,代码如下:
public class Test{
public static void main(String[] args){
String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";
//得到路径数组
String[] fileRoot = str.split(";");
String[] fileName = null;
for(int i = 0;i < fileRoot.length;i++){
if(fileRoot[i] != null){
fileName = fileRoot[i].split("/");
//得到最终需要的文件名
System.out.println (fileName[fileName.length-1]);
}
}
}
}
public class Test{
public static void main(String[] args){
String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";
//得到路径数组
String[] fileRoot = str.split(";");
String[] fileName = null;
for(int i = 0;i < fileRoot.length;i++){
if(fileRoot[i] != null){
fileName = fileRoot[i].split("/");
//得到最终需要的文件名
System.out.println (fileName[fileName.length-1]);
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给一种方法参考吧:如果这样的话,那要先确定str肯定包含至少一个文件名,并且能有一定的规定区分出每个路径来,假如,每两个路径名之间用";"分隔.
String str = "c:/win/good/aaa.txt" ;
String strFileName[] = str.split(";") ;//按你自己的规则拆分
然后判断路径个数,再用个循环
String name[] = str.split("/") ;//以"/"为分离字符将字符串拆分成一个字符数组
int n = name.lengh-1 ;//数组最后一个内容就是你要的文件名了
那么name[n]就是文件名aaa.txt了
下面给个程序吧:
public class TestFileNameString{
public static void main(String[] args)
{
String str = "c:/win/good/aaa.txt;d:/win/good/v/dd.txt" ;
String strFileName[] = str.split(";") ;
if(strFileName.length>0){
String realName[] = new String[strFileName.length] ;
for(int i=0;i<strFileName.length;i++){
String name[] = strFileName[i].split("/") ;//以"/"为分离字符将字符串拆分成一个字符数组
int n = name.length-1 ;//数组最后一个内容就是你要的文件名了
realName[i] = name[n] ;
}
for(int i=0;i<realName.length;i++){
System.out.println(realName[i]) ;
}
}
}
}
String str = "c:/win/good/aaa.txt" ;
String strFileName[] = str.split(";") ;//按你自己的规则拆分
然后判断路径个数,再用个循环
String name[] = str.split("/") ;//以"/"为分离字符将字符串拆分成一个字符数组
int n = name.lengh-1 ;//数组最后一个内容就是你要的文件名了
那么name[n]就是文件名aaa.txt了
下面给个程序吧:
public class TestFileNameString{
public static void main(String[] args)
{
String str = "c:/win/good/aaa.txt;d:/win/good/v/dd.txt" ;
String strFileName[] = str.split(";") ;
if(strFileName.length>0){
String realName[] = new String[strFileName.length] ;
for(int i=0;i<strFileName.length;i++){
String name[] = strFileName[i].split("/") ;//以"/"为分离字符将字符串拆分成一个字符数组
int n = name.length-1 ;//数组最后一个内容就是你要的文件名了
realName[i] = name[n] ;
}
for(int i=0;i<realName.length;i++){
System.out.println(realName[i]) ;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args){
String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";
List<String> fileNames = new ArrayList<String>();
String[] paths = str.split(";");
for(String path:paths){
if(path!=null || path.length()>0){
File file = new File(path);
fileNames.add(file.getName());
}
}
System.out.println(fileNames);
}
}
或者在for循环里用lastIndexOf(“/”)方法截取也可以,我就不写了,你可以自己试着写一下。
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args){
String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";
List<String> fileNames = new ArrayList<String>();
String[] paths = str.split(";");
for(String path:paths){
if(path!=null || path.length()>0){
File file = new File(path);
fileNames.add(file.getName());
}
}
System.out.println(fileNames);
}
}
或者在for循环里用lastIndexOf(“/”)方法截取也可以,我就不写了,你可以自己试着写一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用File类内的getAbsoluteFile()方法,直接得到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询