【问题标题】:string ends with '\n' what is the most efficient way to manipulate?字符串以 '\n' 结尾 最有效的操作方式是什么?
【发布时间】:2011-03-07 17:43:03
【问题描述】:

碰巧用户点击输入,我不想将它作为我输入的一部分包含在内,字符串可以以 3 次 \n 结尾,因此仅替换一个不会完成这项工作 我的解决方案是;

String values[] = string_Ends_With_Back_Slash_N.split("\n"); 
String String_without_Back_Slash_N =new String (values [0]);
//or just to point there without the new but i want later to dump the garbage.

或者至少现在将值转储到 gc ....

所以两个q:

  1. 有没有更有效的方法?..
  2. 我叫谁编译器(android上的java ...)

【问题讨论】:

  • 你可以在Android中使用StringUtils吗?那里有一些方便的函数来处理字符串。 commons.apache.org/lang/api/org/apache/commons/lang/…
  • 我还鼓励您习惯该语言的约定 - 尽管它与问题本身无关,但您的变量通常应该使用小写驼峰式,例如String stringWithoutBackSlashN。实际上,我发现阅读您的代码非常困难,因为您违反了命名约定。
  • andrzej,你说得对,我开始写骆驼案,但在这里看起来很丑,所以我把它改成了展示的那个

标签: java android string


【解决方案1】:

试试String.trim()

此方法从字符串的末尾删除所有字符,这些字符的 ascii 代码小于空格(间隔,32)。这包括\n (10)。

【讨论】:

    【解决方案2】:
    String String_without_Back_Slash_N = string_Ends_With_Back_Slash_N.trim()
    

    【讨论】:

    • 我已经尝试过 ... :) 它没有在 eclipse 上的 java 中删除 /n ... ...在 c# 中我认为它确实有效我没有编译器,但这是一个如果有人可以检查,那就太好了
    • @yoav.str 我检查过,它工作正常。不是/n - 它是\n
    【解决方案3】:

    将所有\n(可能还有\r)替换为""

    【讨论】:

    • 是的,但我要求指导的原因是我想提高效率,因此您的回答对我没有帮助。
    【解决方案4】:
    String s = "test\n\n\n";
    s.replaceAll("\n", "");
    

    【讨论】:

    • 返回类型是我要查找的类型 String temp = s.replaceAll("\n", "");但我的问题仍然是有没有更有效的方法来做到这一点?
    【解决方案5】:

    由于字符串是不可变的,因此无需创建新字符串。如果您转储“垃圾”,垃圾收集器将识别出数组中的第一个元素仍然被引用并且不会将其丢弃。其余的将被处理掉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-11
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多