java - 从 Java Iterator 中随机跳过 'X' 百分比的单词

标签 java random skip

我有一些 java 代码:

   String line = value.toString();
   StringTokenizer tokenizer = new StringTokenizer(line);

   while (tokenizer.hasMoreTokens()) {
         // do someything   
   }

但是,我希望代码随机跳过 X 百分比的标记。

例子: 如果标记是 [a , b , c , d] 并且跳过百分比是 50% 有效执行可以是打印任意两个标记,例如 [ b , c ] 或 [a , d] 等

如何以最简单的方式实现它?

最佳答案

首先计算要跳过的数量,即 (.50)*tokens.length (注意那是伪代码)

然后我将创建一个长度为 tokens.length 的数组,并用选定数量的 1 和其余的 0 填充它

即10 的 50% [1,1,1,1,1,0,0,0,0,0]

然后做一个简单的洗牌算法(Random shuffling of an array)

得到类似的东西 [0,1,1,0,0,1,0,1,1,0]

然后当你运行你的 tokenizer 循环时遍历这个数组并检查

(if thisArray[i]==1){
  print(token);
}

关于java - 从 Java Iterator 中随机跳过 'X' 百分比的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27157311/

相关文章:

java - Jboss 标准输出时间戳

java - Java中高效的二项式随机数生成器代码

windows - 使用 cmd 跳过一次即将到来的计划任务

math - 生成一定范围内的随机数

java - 如何跳过 else 语句一定次数,然后重新开始

r - 如何读取标题但也跳过行-read.table()?

Java 2D Array with Strings,一个错误,需要添加一个简单的功能

java - 对象如何传递给java中的方法(按值或按引用)?

java - 将Akka与现有Java项目集成的示例

arrays - ActionScript 3.0 随机化数组、显示数字并拼接该数字