用javareplacestring中的文本的最佳方法

我有个问题。

我有大约10,000个 .Xls文件。 他们被命名为000001.xls000002.xls ...

我的代码看起来像这样:

 File inputWorkbook = new File(inputFile); Workbook w; String fileName = inputWorkbook.getName().replace("0", ""); 

问题是当它replace0000160.xls0时,结果是16.xls ,就像0000016.xls一样。

我希望它是160.xls

有任何想法吗?

 String fileName = inputWorkbook.getName().replaceAll("^0+", ""); 

这将用""replaceString开始处的所有0。
^意思是“开始于”
+表示前面的字符或组中的一个或多个,在这种情况下为0

你需要正则expression式:

 inputWorkbook.getName().replaceAll("^0*", ""); 

^意思是“开始于”

*表示0或许多

尝试这个

 String string = "0000160.xls"; String[] parts = string.split("."); // split your string int part1 = Integer.parseInt(parts[0]); // which make 160 because Integer String part2 = parts[1];//xls String result=Integer.toString(part1)+"."+part2; // combines both 160.xls 

尝试这个 :

 String test = "00000160.xls"; int i = Integer.parseInt(test.substring(0,test.indexOf("."))); String fileName = i+".xls"; 

尝试这个:

 String fileName = Integer.valueOf(inputWorkbook.getName().substring(0, 7)) + ".xls"; 

只有你的文件名模式像“[0-9] {8} .xls”才有效。