【问题标题】:how to remove \r and \n from my string in java?如何从我的java字符串中删除\r和\n?
【发布时间】:2016-01-05 16:09:15
【问题描述】:

我只是想从我的 JSON 中删除(替换为“”)\r 和 \n。这是我目前正在测试但不起作用的方法。

    public static void testing(){
        String string = "\r\r\r\n\n\n";
        string.replace("\r", "");
        string.replace("\n", "");
    }

【问题讨论】:

  • String.replace 返回修改后的字符串。你需要string = string.replace(...)
  • 尴尬的时刻是它适用于普通字符串,但不适用于 jsonString。测试方法是你建议的,@khelwood。
  • 永远不要直接操作 JSON 字符串。请改用适当的 JSON 库。

标签: java json string


【解决方案1】:

试试这个正则表达式 (\\r\\n|\\n|\\r) 和 String#replaceAll,比如:

string = string.replaceAll("(\\r\\n|\\n|\\r)", "");

【讨论】:

  • 这是我的错误。我会发布另一个问题。我的测试方法在分配后有效,但我正在使用的实际方法不起作用。
【解决方案2】:

替换后,您需要分配回原始字符串。因为字符串是不可变的,所以您无法更改字符串的值。 你需要使用

String string = "\r\r\r\n\n\n";
string  = string.replace("\r", "");
string  = string.replace("\n", "");

或者您可以使用任何库,如 Apache StringUtils。如果您使用这些 utils,则无需将值分配回 String

【讨论】:

  • 这是我的错误。我会发布另一个问题。我的测试方法在分配后有效,但我正在使用的实际方法不起作用。
【解决方案3】:

试试这个:

public static void testing(){
    String string = "\r\r\r\n\n\n";
    string  = string.replace("\r", "");
    string  = string.replace("\n", "");
}

因为replace返回另一个字符串(new String) 因为String是不可变的所以不能直接修改

【讨论】:

  • 这是我的错误。我会发布另一个问题。我的测试方法在分配后有效,但我正在使用的实际方法不起作用。
  • 包括你的,每个答案都是正确的。但这不是我需要的。
  • 请编辑您的问题并准确解释您想要的内容
  • 你想从 json 对象中替换 \r 和 \n 吗?如果是,那么你想要从服务器端还是客户端呢???
  • 是的,我正准备将它作为新帖子发布。但我已经找到了答案。如果我发布它可能会重复。
【解决方案4】:

String.replace 将返回一个字符串。它不会改变它的值。

public static void testing(){
    String str = "\r\r\r\n\n\n";
    str = str.replace("\r", "");
    str = str.replace("\n", "");
}

【讨论】:

  • 这是我的错误。我会发布另一个问题。我的测试方法在分配后有效,但我正在使用的实际方法不起作用。
【解决方案5】:
    String string = "\r\r\r\n\n\n";
    String newStr = string.replace("\r", "");
    newStr = newStr.replace("\n", "");
    System.out.println(newStr);

String 将返回新的 String 对象。

【讨论】:

    【解决方案6】:

    试试这个:

        String string = "\rte\r\rs\nti\nn\ng";
        String newString = string.replaceAll("[^\\w]", "");
    

    【讨论】:

    • 答案是,data_json = data_json.replaceAll("\\\\r\\\\n", "");
    【解决方案7】:
    String string = "\r\r\r\n\n\n";
    string = string.replaceAll("\r", "");
    string = string.replaceAll("\n", "");
    

    【讨论】:

      【解决方案8】:

      试试这个, string = string.replaceAll("[\r\n]", "");

      【讨论】:

      • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
      【解决方案9】:

      这是我发现的:

      data_json = data_json.replaceAll("\\\\r\\\\n", "");
      

      复制自 OP 的 comment

      【讨论】:

        猜你喜欢
        • 2016-06-20
        • 2021-12-06
        • 1970-01-01
        • 2022-01-24
        • 2018-03-09
        • 2019-10-24
        • 2014-03-18
        • 2019-02-04
        • 2011-05-10
        相关资源
        最近更新 更多