2

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

4

5 回答 5

7

您可以使用Commons Lang 的StringUtils.strip。它是 Unicode 感知的。

于 2013-07-15T11:09:07.073 回答
3

您可以使用Character.isWhitespace(char)Character.isSpaceChar(char)方法在 Java 中编写自定义方法来删除 Unicode 空格字符,以 满足您的特定目的。

Spring 框架有一个带有trimWhitespace(String)方法的StringUtils类,该方法似乎基于此处的源代码Character.isWhitespace(char)

于 2013-07-15T11:10:15.040 回答
0

如果你不想要一个大的库。只需使用:

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());
    }
于 2019-04-26T09:41:27.280 回答
0

使用谷歌番石榴

CharMatcher.WHITESPACE.trimFrom(source);

或试试这个https://gist.github.com/michalbcz/4861a2b8ed73bb73764e909b87664cb2

于 2016-08-12T12:01:42.700 回答
-2

只为这个问题搜索 stackoverflow 会更快,因为那里有多个关于该主题的问题。好吧,试试这个:

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

在这里检查这个: 链接

于 2013-07-15T11:09:27.277 回答