【问题标题】:best way to replace text in string with java用java替换字符串中的文本的最佳方法
【发布时间】:2013-12-26 14:36:03
【问题描述】:

我有问题。

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

我的代码如下所示:

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

问题是当它替换0000160.xls 中的0 时,结果是16.xls,就像0000016.xls 一样。

我希望它是160.xls

有什么想法吗?

【问题讨论】:

  • 你到底想做什么?!
  • 好吧,如果这种行为是错误的,那么你想要做什么?从你到目前为止发布的内容很难判断。
  • Okey,当我替换 0 时,0000016.xls 和 0000160.xl 都变成 16.xls。我希望将 0000160.xls 命名为 160.xls
  • 使用 Integer.ValueOf(filename) 并添加扩展名 .xls
  • 并且不要将 .xls 传递给 valueOf 函数

标签: java string excel replace filenames


【解决方案1】:

试试这个:

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

仅当您的文件名模式类似于“[0-9]{8}.xls”时才有效。

【讨论】:

    【解决方案2】:
    String fileName = inputWorkbook.getName().replaceAll("^0+", "");
    

    这会将String 开头的所有0 替换为""。
    ^ 表示“以”开头
    + 表示前面的字符或组中的一个或多个,在本案0.

    【讨论】:

    • 0016.xls怎么样
    • 只替换第一个 0。0000016.xls 结果是 000016.xls 而不是 16.xls。并且 0000160.xls 被命名为 000160.xls
    • @user3082887 欢迎来到 SO。在这里,请拨打tour。
    【解决方案3】:

    你需要正则表达式:

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

    ^ 表示“开头”

    * 表示 0 或多个

    【讨论】:

    • PS:0以上,你只是重复我的回答,原来是不正确的。
    • 在你更新的时候没有注意,在你修复你的代码时删除了我的downvote ...
    【解决方案4】:

    试试这个

    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
    

    【讨论】:

    • 为什么,但结果很好
    • 目的并不总是证明手段的合理性,尤其是在编程中。仅仅因为某些东西给出了正确的答案,并不意味着它是获得所说答案的好方法。
    【解决方案5】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 2015-10-09
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      相关资源
      最近更新 更多