1

私はPDFを解析していて、多くの文字列を取得してい\t, \r, \n,\sます...そして、それらは文字列の両端に表示され、順番に表示されません。だから私は
例を持っていることができます:

\t\s\t\n役に立たないデータに囲まれた必要な重要なデータ\r\t\s\s\r\t\t

。これらの文字列をトリミングする効率的な方法はありますか? いくつかのシンボルが必要なため、これまでのところ十分ではありません。

public static String trimToLetters(String sourceString) {
        int beginIndex = 0;
        int endIndex = sourceString.length() - 1;
        Pattern p = Pattern.compile("[A-Z_a-z\\;\\.\\(\\)\\*\\?\\:\\\"\\']");
        Matcher matcher = p.matcher(sourceString);
        if (matcher.find()) {
            if (matcher.start() >= 0) {
                beginIndex = matcher.start();
                StringBuilder sb = new StringBuilder(sourceString);
                String sourceReverse = sb.reverse().toString();
                matcher = p.matcher(sourceReverse);
                if (matcher.find()) {
                    endIndex = sourceString.length() - matcher.start();
                }
            }
        }
        return sourceString.substring(beginIndex, endIndex);
    }
4

1 に答える 1

6

trimメソッドはString、文字列の両端からすべての空白を削除できる必要があります。

trim: 先頭と末尾の空白を省略して、文字列のコピーを返します。

PS\sは、Java では有効なエスケープ シーケンスではありません。

于 2013-03-20T02:15:45.713 に答える