【问题标题】:How to trim a string from carriage returns in java如何在java中从回车中修剪字符串
【发布时间】:2015-01-23 12:30:16
【问题描述】:

我有一个字符串:

\n\n\n\Mytext is here\n new line \n\n

开头和结尾的 \n 数量未知。

如何将此字符串修剪为

Mytext is here\n new line 

以优雅的方式?

我知道我可以用我自己的函数来编写代码。但是,也许有一个简单的解决方案?

【问题讨论】:

  • ross 的回答是可以的,但不是空保存。这可以手动完成,或者例如使用像 apache commons lang StringUtils 这样的简单库来完成,它是 nullsave。

标签: java trim


【解决方案1】:

修剪它,使用Stringtrim 方法“返回字符串的副本,省略前导和尾随空格。

注意它返回一个字符串的副本并且不编辑String

myString.trim()

空字符串

正如@rmertins 所说,这不是“空安全”,这意味着如果你的Stringnull,它会抛出一个NullPointerException,所以如果你的String 可以是null,请包装它。

if (myString != null)
{
  String newTrimmedString = myString.trim();
}

导入整个库来完成这项任务,就像 @rmertins 所说的(即来自 apache commons 的 StringUtils)只是我想说的矫枉过正。我还要说无论如何传递 null 对象是不好的做法,而 null String 对象表明设计不好。

【讨论】:

  • 非常感谢。这是一个耻辱。现在经过大约 5 次 Java 编码后,我不知道这一点。我刚刚测试了它,它可以工作。
【解决方案2】:

String.trim() 将剪掉开头和结尾的空白。那应该是最快的方法了。如果您需要保留其他空格并且只想删除\n,我认为您必须手动替换它们。

你可以尝试一下

myString = myString.replace("^(\n)*","").replace("(\n)*$","");

(我没有试过这个代码。)

【讨论】:

    【解决方案3】:

    查看String.trim() method

    String foo = "\n\n  \n\t actual Value\t\n \n ";
    System.out.println(foo.trim()); //prints "actual Value"
    

    尽可能简单和优雅。但请记住,这不仅会修剪换行符,还会修剪制表符、空格等。

    【讨论】:

      【解决方案4】:

      如果您的字符串可能是 null,您可能希望使用 StringUtils.trim() - String.trim() 的 null 安全版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        相关资源
        最近更新 更多