2011-12-16 138 views
1

我正在處理一個項目,該項目需要我生成不同的json文件以便在基於端到端的測試中使用。Java生成一個隨機的阿拉伯文字符串

其中一個需求是系統可以處理國際化,即不同的字符類型。

我已經成功地開發一個簡單的隨機字符串坐在當過我需要它產生不同的拉丁字符的方法中:

return RandomStringUtils.random(characterAmount, true, false); 

但是下一步是覆蓋國際化,我需要它在阿拉伯字符情況下生成隨機字符串

有沒有人有任何提示如何最好地去做這件事?

回答

6

好,最簡單的方式是隻挑隨機阿拉伯字符(檢查出的Unicode圖表自己的位置:http://unicode.org/charts/PDF/U0600.pdf和選擇你需要的字符)。

不幸的是,這樣就會產生非法阿拉伯語字符串 - 應該在單詞的開頭似乎可以在任何地方的信件,同樣結束的字母,沒有人知道你要去哪裏得到那些漂浮Hamzas。如果您需要的字符串更「符合阿拉伯語」,我會做不同的事情:

以阿拉伯文字的大文件,它拆分成詞,並隨機選擇的話。沒有什麼比古蘭經爲:http://www.sacred-texts.com/isl/uq/index.htm

0

你必須使用java.lang.Character.UnicodeBlocklink to javadoc) 測試如果一個Unicode字符屬於特定塊

算法的複雜性是可怕的可能性,但應該有什麼好結果。你甚至可以緩存您的結果下的文件,讓你輕鬆地重用

或者你可以檢查source of that class阿拉伯語拿到代碼點範圍:-)

+0

其實算法的複雜性可能是`O(1)`。 .. :-) – 2011-12-16 10:37:49