【问题标题】:Replace first part of string in Java替换Java中字符串的第一部分
【发布时间】:2021-11-05 04:34:27
【问题描述】:

我有以下字符串:

String myString = "/folder1/folder2/file.txt";

如何将路径 wifolder1 的第一部分替换为 newFolder?我尝试了以下方法(在此处发布:Remove first folder in string),但它什么也没做,正则表达式可能需要调整?

String newString = myString.replaceAll("/^.+ ?[/]/", "newFolder");
// Expect newString = "/newFolder/folder2/file.txt"

使用Path 执行此操作的相关问题,我想坚持使用String 作为我的解决方案:

Replace first part of a Java Path

【问题讨论】:

  • 试试myString.replaceAll("^/[^/]+/", "/newFolder/");
  • 使用replaceFirst (LOL)。模式"^..." 也意味着从一开始。在多行(选项)替换中很有用。
  • .replaceFirst("^/?[^/]+", "newFolder")

标签: java regex file path


【解决方案1】:

这里是没有正则表达式的解决方案:

String string = "/folder1/folder2/file.txt";
String revisedString = string.replace("folder1", "newFolder");
System.out.println(revisedString); // it will print -> /newFolder/folder2/file.txt

使用正则表达式:

String string = "/folder1/folder2/file.txt";
String revisedString  = string.replaceAll("^/[^/]+/", "/newFolder/");
System.out.println(revisedString ); // it will print -> /newFolder/folder2/file.txt

【讨论】:

    【解决方案2】:

    您甚至不需要使用正则表达式。您可以通过使用 Java 中 String 类中存在的 replace() 方法直接做到这一点。

    String myString = "/folder1/folder2/file.txt";
    String folder1 = "qualified and valid name";
    String newLocation = myString.replace(folder1,newFolderName);
    

    此 newFolderName 是您要替换文件夹 1 的文件夹名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-18
      • 2016-04-02
      • 1970-01-01
      • 2012-05-18
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      相关资源
      最近更新 更多