【问题标题】:generating *interesting* strings at random in Java [closed]在Java中随机生成*有趣的*字符串[关闭]
【发布时间】:2012-11-26 22:19:11
【问题描述】:

我一直在使用 ScalaCheck 进行自动单元测试。它的默认字符串生成器(即它的默认 Arbitrary[String] 实例)有点强大,通常会产生不可读的混乱,主要由我不想支持且我的系统不能支持的字符组成甚至渲染。

我已着手创建更多 Arbitrary[String] 实例,并试图找出其中的内容。 以下是一些有助于测试的 String 类示例:

  • 基本的多语言平面字符串
  • 星体弦
  • 拉丁字符串(包括扩展名 a/b)
  • 法语单词
  • 从左到右的语言字符串
  • 从右到左的语言字符串
  • 中文句子
  • “网络字符串”(从构成网络内容 99.9999% 的字符集中提取的字符串)
  • 发挥你的想象力...

是否有可以随机生成这些或类似字符串的库?

【问题讨论】:

    标签: java string random scalacheck


    【解决方案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();
    

    另一种方法是从不同语言中随机获取预先编写的文本的 sn-ps。你可以在这里获取一些:http://www.unicode.org/standard/WhatIsUnicode.html 看看翻译。

    【讨论】:

      【解决方案2】:

      试试

      RandomStringUtils.random(10, true, false)
      

      参数如下:int count, boolean letters, boolean numbers

      您需要导入org.apache.commons.lang.RandomStringUtils;

      【讨论】:

        猜你喜欢
        • 2018-03-24
        • 1970-01-01
        • 2014-02-01
        • 2017-11-18
        • 1970-01-01
        • 2014-03-17
        • 2011-12-10
        • 1970-01-01
        • 2017-01-06
        相关资源
        最近更新 更多