【问题标题】:Delete empty spaces in a String without removing linebreaks删除字符串中的空格而不删除换行符
【发布时间】:2020-10-24 00:45:35
【问题描述】:

我在txt 文件中有一个字符串列表

string1,
string2,
string3,
string4,

我要删除string3

txtData = txtData.replace("string3,", "");

string1,
string2,

string4,

我不想要那里的空白,所以我这样做了

txtData = txtData.replace("\n", "");

但是这样做会代替

string1,string2,string4

我需要这个

string1,
string2,
string4,

怎么做?

【问题讨论】:

    标签: java string replace


    【解决方案1】:

    结合你尝试的两件事:

    txtData = txtData.replace("string3,\n", "");
    

    如果string3,位于文件末尾并且后面可能有也可能没有换行符,如果您也希望它能够工作:

    txtData = txtData.replaceAll("(?m)string3,$", "");
    

    这是一个匹配“行尾”的正则表达式($ 表示:“行尾”,如果处于多行模式。(?m) 开启多行模式)。

    【讨论】:

      【解决方案2】:

      您可以为此目的使用正则表达式:

      String str =
              "string1,\n" +
              "string2,\n" +
              "string3,\n" +
              "string4,";
      
      // remove literal "string3," and trailing
      // whitespace characters after it, if present
      String str2 = str.replaceAll("string3,\\s*","");
      
      System.out.println(str2);
      

      输出:

      string1,
      string2,
      string4,
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 2011-08-27
        • 2021-06-30
        • 1970-01-01
        相关资源
        最近更新 更多