Java 如何从reader.readLine()返回的字符串中删除unicode空格

Java 如何从reader.readLine()返回的字符串中删除unicode空格,java,android,Java,Android,I当我使用reader.readLine()时,字符串长度始终为80个字符,并且在填充主字符串unicode空格之后。 有没有办法删除那些不需要的字符。 (java.io.RandomAccessFile读取器) String.trim不适用于此您可以从Commons Lang使用它。它支持Unicode。只搜索stackoverflow以查找此问题会更快,因为该主题有多个问题。那么,试试这个: st.replaceAll("\\s","") 在这里选中此项:您可以使用Java编写一个自定义方

I当我使用reader.readLine()时,字符串长度始终为80个字符,并且在填充主字符串unicode空格之后。 有没有办法删除那些不需要的字符。 (java.io.RandomAccessFile读取器)
String.trim不适用于此

您可以从Commons Lang使用它。它支持Unicode。

只搜索stackoverflow以查找此问题会更快,因为该主题有多个问题。那么,试试这个:

st.replaceAll("\\s","")

在这里选中此项:

您可以使用Java编写一个自定义方法来删除Unicode空格字符,使用和方法来实现特定目的

Spring框架有一个类,它的方法似乎是基于Character.isWhitespace(char)的。

使用Google Guava

CharMatcher.WHITESPACE.trimFrom(source);

如果你不想要一个大的libs,也可以试试这个。只需使用:

str.replaceAll(“^[\\s\\p{Z}]+|[\\s\\p{Z}]+$”,”)

测试

    public static String trim(String str) {
        return str.replaceAll("^[\\s\\p{Z}]+|[\\s\\p{Z}]+$", "");
    }

    public static void main(String[] args) {
        System.out.println(trim("\t tes ting \u00a0").length());
        System.out.println(trim("\t testing \u00a0").length());
        System.out.println(trim("tes ting \u00a0").length());
        System.out.println(trim("\t tes ting").length());
    }

不过,这会消除所有的空间,而不仅仅是填充。问题有点太窄了。例如,我在stackoverflow中搜索了“[java]国际化修剪”和“[java]unicode修剪”,但没有找到这个问题。您确实需要一个支持I18N/Unicode的trim()函数;如果问题的措辞是这样的,更多的人将能够找到下面的答案。它应该使用更新的Character.isSpaceChar来完全识别unicode