4

自動単体テストに ScalaCheck を使用しています。そのデフォルトの String ジェネレーター (つまり、デフォルトArbitrary[String]のインスタンス) は少し強力すぎて、通常、主にサポートしようとしていない文字で構成された判読不能な寄せ集めを生成し、私のシステムはレンダリングすることさえできません。

さらにいくつかのインスタンスを作成することに着手し、Arbitrary[String]そこにあるものを見つけようとしています。テストに役立つ String クラスの例を次に示します。

  • 基本的な多言語プレーン文字列
  • アストラルストリングス
  • ラテン文字列 (拡張子 a/b を含む)
  • フランス語の単語
  • 左から右への言語文字列
  • 右から左への言語文字列
  • 中国語の文章
  • 「Web 文字列」 (Web コンテンツの 99.9999% を構成する文字セットから抽出された文字列)
  • 想像力を使って ...

これらまたは類似の文字列をランダムに作成できるライブラリはありますか?

4

2 に答える 2

1

私は別のアプローチを取るでしょう。すべての例は、Unicode の文字ブロックにマップされています。http://www.fileformat.info/info/unicode/block/index.htmを参照してください。好きなブロックを選んで、それらの範囲に限定されたランダムな文字列を生成してください。

int count = 10;
StringBuilder out = new StringBuilder();
Random rand = new Random(0);
for (int i = 0; i < count; i++) {
  char ch = rand.nextInt(numCharsInRange) + firstCharInRange;
  out.append(ch);
}
return out.toString();

もう 1 つのアプローチは、さまざまな言語から事前に構成されたテキストのランダムなスニペットを取得することです。ここでいくつか入手できます: http://www.unicode.org/standard/WhatIsUnicode.html翻訳を見てください。

于 2012-11-26T22:28:38.450 に答える
0

試す

RandomStringUtils.random(10, true, false)

パラメータは次のとおりです。int count, boolean letters, boolean numbers

インポートする必要がありますorg.apache.commons.lang.RandomStringUtils;

于 2012-11-26T22:34:48.743 に答える