如何取回使用 .trim 删除的所有原始前导和尾随空格? [复制]
Posted
技术标签:
【中文标题】如何取回使用 .trim 删除的所有原始前导和尾随空格? [复制]【英文标题】:How do I get back all the original leading and trailing spaces I removed from using .trim? [duplicate] 【发布时间】:2018-10-02 02:21:43 【问题描述】:我把一个字符串变成了.trim()
。我想尝试扭转它,但我似乎做不到。
例如,
String a = " apple ";
我做到了,a = a.trim();
这样:
assert(a == "apple");
我希望能够回到原来的填充文本。
assert( a == " apple ");
【问题讨论】:
如果你修剪它,空格就消失了。如果你想知道它以前是什么,那么你不应该覆盖它。我不确定这里有什么问题。 【参考方案1】:除非你存储原始字符串并返回它,否则你不能。
String original = " apple ";
String backup = original;
string original = original.trim();
System.out.println(original); //this will show trimmed text
original = backup;
System.out.println(original); //this will show the original untrimmed text.
【讨论】:
【参考方案2】:你不能“让它们回来”,但你可以在修剪它们之前记录它们。
根据Javadoc,可以找到字符串中第一个未删除字符的索引如下:
int k = 0;
while (k < string.length() && string.charAt(k) <= 0x20)
++k;
现在,前导空格是字符串string.substring(0, k)
。
你可以用类似的方法找到最后一个未删除的字符索引(称之为m
);然后尾随空格由string.substring(m+1)
给出。
既然您已经这样做了,那么使用 trim()
就没有意义了:string.substring(k, m+1)
是您的修剪后的字符串(前提是您已经处理了“字符串中的所有内容都是空白”的情况)。
【讨论】:
以上是关于如何取回使用 .trim 删除的所有原始前导和尾随空格? [复制]的主要内容,如果未能解决你的问题,请参考以下文章