如何在Java中修剪不间断空间?


问题内容

[我已输入,我需要处理和丢弃所有的白色空间,包括非换空间的输入文件U+00A0又名 (您可以通过按生产它在记事本中Alt,然后键入0
1 6
0从键盘的数字小键盘。)或任何其他形式的空白空间。我已经尝试过了,String.trim()但是没有修剪U+00A0

我是否需要显式检查U+00A0,然后trim()是否有一种简便的方法来修剪Java中的所有空白?


问题答案:

虽然 是一个不间断的空格(不想被视为空格的空格),但是您可以修剪字符串,同时 使用简单的正则表达式保留字符串中的每个字符串:

string.replaceAll("(^\\h*)|(\\h*$)","")
  • \h 是水平空白字符: [ \t\xA0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000]

如果您使用的是JDK8之前的版本,则需要显式使用字符列表而不是\h