【问题标题】:Taking random defined Strings采用随机定义的字符串
【发布时间】:2014-06-21 09:23:43
【问题描述】:

我想做一个应用程序,根据检查的参数,给我一个我之前设置的随机字符串。问题不在于应用程序的设计,所以问题在于执行我想要的方法或类。

-我用一个例子来解释我的目标: 这个周末我们有 100 个计划要做。它们在一个盒子里,我想随机挑选一个。太好了,我想这或多或少会容易,但是,这个周末正在下雨,所以我想选择一个即使下雨也可以完成的计划。这个月就要结束了,我不想花钱,所以免费计划会很棒。然后,我选中“免费计划”和“下雨”复选框,应用程序会给我一个符合条件的随机计划。

你会怎么做?

我在考虑像“Raining plans”、“Free plans”这样的大数组,里面有字符串,当你选中这两个框时,数组是混合的,一个字符串是随机挑选的,但我不知道该怎么做我认为这可以通过另一种最简单的方式来完成。

提前致谢。

【问题讨论】:

  • 一个完美的数据库用例。即使只有一张桌子。
  • 您的阵列设计有缺陷。如果所有计划都是免费的并且下雨计划怎么办?然后你会有两个重复的数组。最好在您的计划中包含属性并过滤这些属性,创建一个列表以从中选择一个随机元素。如果列表真的很大,你甚至可以绕过列表创建,但我猜这不是问题。此外,如果您不知道如何操作数组,您可能需要退后一步并阅读一些教程。不要着急!
  • @DerGolem 比数组更好?
  • @keyser 好的,所以使用数组可以,但是如何为字符串赋予属性?我是否必须为每个计划创建一个类,然后将该计划扩展到 "Rainy","Free".. 类?
  • @marckamoedo 类将是一种方式,一种 java 方式。如果您需要数据库,Der Golem 会为您指明正确的方向。拥有与数据库中的行对应的对象是很常见的。

标签: java android methods random


【解决方案1】:

使用二维数组如下:

    arr[filter][tasks];

让过滤器值是转换为int的二进制字符串 假设您有两个过滤器,如前面提到的“rainy”和“free”,可能的值是

    00 - 0(decimal value 0) - not rainy, not free
    01 - 1(decimal value 1) - not rainy, free
    10 - 2(decimal value 2) - rainy, not free
    11 - 3(decimal value 3) - rainy, free

当用户检查这两个值时,你就有 1 和 1。现在将二进制 11 转换为整数,这将是你的第一个索引。获取任务的随机第二个索引。 您可以拥有任意数量的过滤器 提示:Integer.parseInt(binary_str, 2) 用于二进制到 int 的转换。

【讨论】:

  • 但我想用几个参数来做,所以这种方式是两个参数对吧?
  • 参数可以是任意数字,如果三个可能的值是 (000,001,010,100...111) 只是 2*n-1 种可能性。当我们有一个小的值时似乎很好
  • @marckamoedo 看看桌子。将每个 0/1 视为一个布尔标志。
猜你喜欢
  • 2018-10-13
  • 1970-01-01
  • 2015-09-05
  • 2017-05-20
  • 1970-01-01
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多