Java去遍历文件夹目录下,指定文件名称格式的,表达式写法的问题 10

我要遍历一个目录下的文件,该目录下的文件夹命名方式如SUBJECT_9001_AAAA,SUBJECT_9002_SDSA,这种格式,现在有个问题,这个目录可能会有别的文... 我要遍历一个目录下的文件,该目录下的文件夹命名方式如SUBJECT_9001_AAAA,SUBJECT_9002_SDSA,这种格式,现在有个问题,这个目录可能会有别的文件夹或者文件,循环遍历的是时候,代码怎么写,才能比较的比较准确,如我是这样写的,boolean flag = (file.getName().contions("SUBJECT_"")&&(file.getName.lastIndexOf("_"))
这样判断的话,还是有的情况包括不到如:有一个这样的文件夹SUBJECT_1,还是会进循环判断
哪个高手可以帮我看看这个判断文件名的这个表达式要怎么写,包括的比较全, 比较安全,表达式看起来比较简洁,让他只去读SUBJECT_9001_ABCD这种命名格式的文件夹
展开
 我来答
小白AI绘画
2012-01-06 · TA获得超过1358个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:470万
展开全部
按现在看到情况匹配"SUBJECT_"开头之后为4位数字再拼接"_"再拼接4位大写的英文字母
需要修改可追问
boolean flag = file.getName().matches("^SUBJECT_[\\d]{4}_[A-Z]{4}$");
更多追问追答
追问
SUBJECT_9XXX_这个格式是固定的,SUBJECT_9XXX_XXX是任意长度的数字字母下划线都可以
追答
boolean flag = file.getName().matches("^SUBJECT_9[\\d]{3}_\\w+$");
//匹配"SUBJECT_"开头之后为数字9再拼接3位任意数字再拼接"_"再拼接至少一位数字字母下划线
百度网友845f74e61
2012-01-06 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1625万
展开全部
要么用正则,
要么自己写一个判断算法.

(file.getName().contions("SUBJECT_"")&&(file.getName.lastIndexOf("_"))
单纯这样太简单了.
比如整个的长度,有几个下划线,中间的只能是数字,等等,这些都做判断.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenlimj
2012-01-06
知道答主
回答量:17
采纳率:0%
帮助的人:16.1万
展开全部
用String的matches方法加上^$根本是多此一举。

跟你写了段代码希望能帮到你,

import java.io.File;
import java.io.FileFilter;

public class TestStart {

/**
* @param args
*/
public static void main(String[] args) throws Exception {
File file = new File("......"); //文件路径

/*
* 如果需要深层次的遍历,把这段代码封装成一个方法做递归
*/
File[] files = file.listFiles(new TestFilter());
for(File f : files) {
System.out.println(f.getName());
}
}

}

class TestFilter implements FileFilter {

public boolean accept(File file) {

//文件的具体格式你发我,我跟你写个正则表达式替换下
return file.getName().matches("SUBJECT_\\d{4}_[A-Z]{4}");

}

}
追问
如SUBJECT_xxxx_XXXX,其中xxxx是以9000-9999的数字,XXXX是以大写字符开头,然后后面是任意的,帮我写一个谢谢了
追答
“XXXX是以大写字符开头”
如果后面只有4个字母:SUBJECT_9\\d{3}_[A-Z]\\w{3}
如果长度不限:SUBJECT_9\\d{3}_[A-Z]\\w*
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
r8v2d4g6
2012-01-08
知道答主
回答量:12
采纳率:0%
帮助的人:2万
展开全部
fdhfghfg
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式