2011-02-02 44 views
3

我正在處理文本語料庫。它包含屬於不同的語言,符號,數字等幾個大字如何使用Java查找非字母文字

- >所有我需要做的是跳躍如箭頭標記,心臟符號等符號

- >我不應該破壞不同語言的任何字符。

任何線索?

---- ---- UPDATE

Character.isLetter('\萬國碼)正在爲大多數,如果不是一些。我檢查了我的區域語言,似乎它對一些人有用,但不是每個人都適用。

謝謝。

+0

這個問題沒有很好的說明。您是否熟悉Unicode常規類別的工作方式?每個代碼點都屬於字母,數字,符號,標點,標記,分隔符或其他(通常是控件字符)中的一個。其中每個都有細分。 – tchrist 2011-02-02 14:24:29

回答

0

您可以實現僅包含所需字符的Charset。然後,您可以提供一個CharsetDecoder來解碼文本並去除您想跳過的字符。

+0

感謝Qwerky的回覆。 如果字符集長度是確定的,很可能。否則,我應該收集所有現有語言的字符。 我希望找到的是,某些圖書館或類似所有這些符號的情況屬於特定的字符集,以便我可以指定跳過或任何其他解決方案。 – Firefox 2011-02-02 13:16:35

+0

@Firebox:你知道Unicode常規類別屬性是如何工作的嗎?此外,使用JDK7,您*終於*可以訪問腳本屬性,這將允許您(例如)檢測到Script = Common,Script = Latin或Script = Greek。 – tchrist 2011-02-02 14:21:15

1

如果我正確地讀取了,您想刪除的字符是一個相當有限的設置。爲什麼不檢查這些? Unicode有一大堆非字母字符,但就你而言,遇到的非字母字符可能只是存在的一小部分。

聽起來像正規表達式的工作,如果你問我。刪除所有不是單詞字符,數字或空格的東西,而且您可能已經擁有它了。或者創建一個包含你想要過濾的所有字符的數組(在這種情況下應該很少和已知)。

相關問題