【问题标题】:What must my code look like in order to remove white space in a String in java? [closed]为了在java中删除字符串中的空格,我的代码必须是什么样的? [关闭]
【发布时间】:2013-10-01 11:23:25
【问题描述】:

为了在 Java 中删除字符串中的空格,我的代码必须是什么样子?

我尝试了以下方法:

/* Option 1 */ String x=splitString.replaceAll("\\s+","");
/* Option 2 */ String x=splitString.trim()

这些都没有给我我期望的结果。

【问题讨论】:

  • 解释不起作用,因为第一个肯定会替换所有空格。
  • 只是为了说清楚: x 在方法调用后没有空格。 splitString 与 Java 中的 Strings are immutable 保持一致
  • 确实,在一个很多人都理解的主题上,一个问得不好的问题似乎会产生很多活动!
  • 听起来你有一个潜在的不间断空白字符,它不会被 trim() 删除或被 \s 匹配。尝试打印出空间的 int 值来验证这一点。
  • @Panchotiya Vipul 写下你要删除空格的字符串..

标签: java regex string


【解决方案1】:

认为\s 匹配所有空格的一小群人是完全错误的! Looking in the docs 我们可以看到它匹配 [ \t\n\x0B\f\r] - 一堆 破坏 空白(或者换句话说,只是普通的旧普通空白。)

同样,trim() 也不匹配所有空格(更糟糕的是,它匹配所有具有值 在技术上不是空格) - 所以举一个字符串前后有空格的例子,然后在上面调用trim(),无论如何都不是一个全面的测试。

鉴于上述情况,您提供的(基于正则表达式的)代码肯定会从字符串中删除所有中断的空格,所以在我看来,您在那里。如果您从某个外部源中提取了任何文本,而不仅仅是在代码中编写字符串(例如,HTML 页面的一部分可能是最有可能的候选者),则尤其可能出现这种情况。

如果是这种情况,请尝试:

String x=splitString.replaceAll("\\p{Z}","");

...其中\p{Z} 是匹配任何 种空格的快捷方式,而不仅仅是非中断空格。 \p{Separator} 是它的更长(等效)形式。

【讨论】:

  • 它的工作谢谢.....
  • +1 注意:trim() 删除尾随/前导字符
  • @PeterLawrey 谢谢你 - 我根本不知道!已相应更新答案。
  • @berry120 这是一个 Java 1.0 函数,可以非常简单地查看您可能想要从字符串中修剪的内容;)
  • @PeterLawrey 我从它的行为中猜到了 - 有点像旧时代遗留下来的机制,现在不幸的是!
【解决方案2】:

试试这个代码会对你有帮助!

String st = " Hello I am White Space   ";
System.out.println(st);  // Print Original String
   //st = st.replaceAll("\\s+",""); // Remove all white space and assign to same
   st = st.trim(); // It is working fine.
System.out.println(st);  // Print after removing all white space.

【讨论】:

  • 先看看我已经在问题中提出的问题
  • 在我看来它工作正常。它正在删除空白。
  • -1,这段代码与问题中的代码完全等价!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
相关资源
最近更新 更多