如何在Java中从文件名获取零件数据?

如何在Java中从文件名获取零件数据?,java,Java,如何从字符串中获取部分数据: csvFile = "c:/Users//PHV/01Surname local.csv" 我需要从上面的字符串中提取姓氏 UPD 你觉得怎么样 File f = new File(csvFile); String[] parts = f.getName().split(" "); String strParts = new String(parts[0]); String finFileName = strParts.subs

如何从字符串中获取部分数据:

csvFile = "c:/Users//PHV/01Surname local.csv" 
我需要从上面的字符串中提取姓氏

UPD

你觉得怎么样

    File f = new File(csvFile);
    String[] parts = f.getName().split(" ");
    String strParts = new String(parts[0]); 
    String finFileName = strParts.substring(2, strParts.length());

你需要一个正则表达式。比如:

Pattern p = Pattern.compile("^.*/[0-9]+(a-zA-Z)+ .*");
Matcher m = p.matcher(csvFile);
String surname;
if (m.matches()) {
   surname = m.group(1);
} else {
   System.out.println("filename seems malformed: " + csvFile);
}

更新:这里有一个关于正则表达式的教程,但不确定它是否是最好的。不过我认为它一定对您有用:

您需要一个正则表达式。比如:

Pattern p = Pattern.compile("^.*/[0-9]+(a-zA-Z)+ .*");
Matcher m = p.matcher(csvFile);
String surname;
if (m.matches()) {
   surname = m.group(1);
} else {
   System.out.println("filename seems malformed: " + csvFile);
}

更新:这里有一个关于正则表达式的教程,但不确定它是否是最好的。我想这对你一定有用:

我不确定我是否理解你的问题,但我想你想提取“姓氏”。如果正确,请尝试以下操作:

String surname = csvFile.substring(csvFile.lastIndexOf("/") + 3, csvFile.lastIndexOf(" "));

我不确定我是否理解你的问题,但我假设你想提取“姓氏”。如果正确,请尝试以下操作:

String surname = csvFile.substring(csvFile.lastIndexOf("/") + 3, csvFile.lastIndexOf(" "));

您希望local.csv作为输出吗?为什么要否决投票?op想知道如何从字符串中提取数据。姓氏是否处于静态位置?字符串是否会改变?^^^^^人们投票反对,因为你不能只问这样的问题。OP必须证明他/她在发布问题之前做了一些尝试。
string temp=csvFile.substring(csvFile.indexOf(“S”)、csvFile.indexOf(“S”)您是否希望local.csv作为输出?为什么不投票?op想知道如何从字符串中提取数据。姓氏是否处于静态位置?字符串是否会改变?^^^^^人们投票反对,因为你不能只问这样的问题。OP必须证明他/她在发布问题之前做了一些尝试。
string temp=csvFile.substring(csvFile.indexOf(“S”)、csvFile.indexOf(“S”)什么是f.getName()?@Makky,对不起,我从编辑的问题中粘贴了这个。它必须是
csvFile
,我会编辑。什么是f.getName()?@Makky,很抱歉我从编辑过的问题中粘贴了它。它必须是
csvFile
,我将进行编辑。