我必须从给定的字符串中删除前导和尾随空格,并合并连续的空格。例如,
String str = " this is a string containing numerous whitespaces ";
我需要将其归还为:
"this is a string containing numerous whitespaces";
但问题是我不能使用 String#trim()
。 (这是一项作业,不允许我使用此类方法。)我目前正在通过逐个访问每个字符来尝试,但很不成功。
我需要为此优化代码。有人可以帮忙吗?我需要它在今天之前完成:(
最佳答案
编辑:在我们被告知不能使用 replaceAll
之前发布了答案。我把它留在这里是因为它可能对其他读者有用,即使它对 OP 没有用。
I need an optimized code for this.
您真的需要优化它吗?您是否将此确定为瓶颈?
应该这样做:
str = str.replaceAll("\\s+", " ");
这是一个正则表达式,表示“用单个空格替换任何连续的空格”。它可能不是最快的,但我会在尝试其他任何东西之前对其进行基准测试。
请注意,这会将 所有 空格替换为空格 - 因此如果您有制表符或其他空格字符,它们也将替换为空格。
关于java - 在没有 trim() 和 replaceAll() 的情况下删除字符串中的连续空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849204/