Java生成随机的阿拉伯文本字符串

Java生成随机的阿拉伯文本字符串,java,random,arabic,Java,Random,Arabic,我正在从事一个项目,该项目要求我生成不同的json文件,以便在基于端到端的测试期间使用 要求之一是系统能够处理国际化,即不同的字符类型 我成功地在一个方法中开发了一个简单的随机字符串,当我需要它时,它会生成不同的拉丁字符: return RandomStringUtils.random(characterAmount, true, false); 然而,下一步是讨论国际化,我需要它以阿拉伯语字符大小写生成随机字符串 有谁知道如何最好地完成这项工作吗?好吧,简单的方法就是随机挑选阿拉伯字符(查看

我正在从事一个项目,该项目要求我生成不同的json文件,以便在基于端到端的测试期间使用

要求之一是系统能够处理国际化,即不同的字符类型

我成功地在一个方法中开发了一个简单的随机字符串,当我需要它时,它会生成不同的拉丁字符:

return RandomStringUtils.random(characterAmount, true, false);
然而,下一步是讨论国际化,我需要它以阿拉伯语字符大小写生成随机字符串


有谁知道如何最好地完成这项工作吗?

好吧,简单的方法就是随机挑选阿拉伯字符(查看Unicode图表中的位置:然后挑选你想要的字符)

不幸的是,这会产生非法的阿拉伯字符串——应该出现在单词开头的字母可以在任何地方,结尾字母也是如此,而且没有人知道你会从哪里得到这些浮动的字母。如果您需要字符串更符合阿拉伯语,我会做一些不同的事情:


取一个大文件的阿拉伯语文本,将其拆分为单词,然后随机选择单词。没有什么能比得上古兰经:

好吧,简单的方法就是随机挑选阿拉伯字符(查看Unicode图表中的位置:然后挑选你想要的字符)

不幸的是,这会产生非法的阿拉伯字符串——应该出现在单词开头的字母可以在任何地方,结尾字母也是如此,而且没有人知道你会从哪里得到这些浮动的字母。如果您需要字符串更符合阿拉伯语,我会做一些不同的事情:


取一个大文件的阿拉伯语文本,将其拆分为单词,然后随机选择单词。没有什么能比得上古兰经:

你可以使用
java.lang.Character.UnicodeBlock
() 测试unicode字符是否属于特定块的步骤

算法的复杂性是可怕的,但应该会导致一个好的结果。您甚至可以将结果缓存在文件下,以便于重用


或者您可以检查阿拉伯语以获取代码点范围:-)

您可以使用
java.lang.Character.UnicodeBlock
() 测试unicode字符是否属于特定块的步骤

算法的复杂性是可怕的,但应该会导致一个好的结果。您甚至可以将结果缓存在文件下,以便于重用


或者您可以检查阿拉伯语以获得代码点范围:-)

实际上,算法复杂性可能是
O(1)
…:-)@Stephen是的,如果你谈论类方法的复杂性。。。但我想到了他必须编写的方法来生成一个随机代码点,测试它是否属于好的块,重新生成另一个代码点,直到它找到一个好的范围,然后在代码点周围填充以找到一个精确的范围,然后对所有Unicode块实例重新运行所有这些,以获得Unicode块的所有范围的列表。非常确定这不是O(1):-d实际上算法的复杂性可能是
O(1)
…-)@Stephen是的,如果你谈论类方法的复杂性。。。但我想到了他必须编写的方法来生成一个随机代码点,测试它是否属于好的块,重新生成另一个代码点,直到它找到一个好的范围,然后在代码点周围填充以找到一个精确的范围,然后对所有Unicode块实例重新运行所有这些,以获得Unicode块的所有范围的列表。很确定那不是O(1):-D