我正在开发一个项目,要求我生成不同的json文件,以便在基于端到端的测试中使用。
其中一个要求是系统可以处理国际化,即不同的字符类型。
我设法在一个方法中开发一个简单的随机字符串,在我需要的时候生成不同的拉丁字符:
return RandomStringUtils.random(characterAmount, true, false);
然而,下一步是涵盖国际化,我需要它来生成阿拉伯字符情况下的随机字符串。
有人会对如何最好地解决这个问题有任何提示吗?
答案 0 :(得分:6)
嗯,简单的方法就是选择随机的阿拉伯字符(查看Unicode图表的位置:http://unicode.org/charts/PDF/U0600.pdf并选择你想要的字符。)
不幸的是,这会产生非法的阿拉伯字符串 - 应该出现在单词开头的字母可以在任何地方,对于结束字母也是一样的,并且没有人知道你将在哪里获得那些浮动的哈姆萨斯。如果你需要你的字符串更符合'阿拉伯语',我会做一些不同的事情:
获取大量阿拉伯文字文件,将其分成单词并随意选择单词。没有什么比古兰经更胜一筹了:http://www.sacred-texts.com/isl/uq/index.htm
答案 1 :(得分:0)
您可以使用java.lang.Character.UnicodeBlock
(link to javadoc)
测试unicode字符是否属于特定块
算法的复杂性很糟糕,但应该会带来好的结果。您甚至可以将结果缓存在文件下,以便您轻松地重复使用
或者您可以查看source of that class获取ARABIC以获取代码点范围: - )