展开串
实际开发中,常常会出现用到一批文件,而这些文件的文件名有某种规律,我们在表述的时候,往往习惯简写,但这样程序又不好识别。
比如:
c:/abc/xyz/k[11..19].dat
实际表示的就是:
c:/abc/xyz/k11.dat
c:/abc/xyz/k12.dat
c:/abc/xyz/k13.dat
c:/abc/xyz/k14.dat
c:/abc/xyz/k15.dat
c:/abc/xyz/k16.dat
c:/abc/xyz/k17.dat
c:/abc/xyz/k18.dat
c:/abc/xyz/k19.dat
本题目要求是:给定一个含有简写的串,要求展开为所有文件名。
简写的格式为:[整数..整数]
/*
*/
import java.util.regex.*;
public class ZhanKai
{
public static void main(String[] args)
{
String s = "c:/abc/[8]xyz/k[11..19].dat";
Pattern pt = Pattern.compile("\\[([0-9]+)\\.\\.([0-9]+)\\]");
Matcher mc = pt.matcher(s);
if(mc.find()){
int a = Integer.parseInt(mc.group(1));
int b = Integer.parseInt(mc.group(2));
String s1 = s.substring(0,mc.start()); //截取首段
String s2 = s.substring(mc.end()); //截取尾段
for(int i=a; i<=b; i++)
System.out.println(s1 + i + s2);
}
}
}02-05正则表达式进阶_展开串,布布扣,bubuko.com
原文:http://blog.csdn.net/u012897654/article/details/24551137