如何将两个字符串与随机位置结合起来

萨尔瓦多·菲格罗亚

我正在尝试使用两个字符串组合成另一个字符串来生成许可证密钥。

String key1 = "X1X2X3X4..Xn"; //this is for the imei key cellphone
String key2 = "Y1Y2Y3Y4M1M2D1D2H1H2m1m2"; //this is a key to mix with the first one

组合的结果应如下所示:

String result = "D1H1X1X2X3Y2Y4X4X5...XnY3Y1D2m2m1H1H2";

我像这样每隔两个空格分割字符串,然后保存到数组中:

String [] key1splited = splitStringEvery(key1, 2);
String [] key2splited = splitStringEvery(key2, 2);

public String[] splitStringEvery(String s, int interval) {
    int arrayLength = (int) Math.ceil(((s.length() / (double)interval);
    String[] result = new String[arrayLength];

    int j = 0;
    int lastIndex = result.length - 1;
    for (int i = 0; i < lastIndex; i++) {
        result[i] = s.substring(j, j + interval);
        j += interval;
    } 
    result[lastIndex] = s.substring(j);

    return result;
}

我怎样才能使我的琴弦组合得到如下所示的结果:

String result = "D1H1X1X2X3Y2Y4X4X5...XnY3Y1D2m2m1H1H2";

我希望有人能给我一个解决方法。

我正在尝试做这样的事情,但这是非常糟糕的方法:

static String res = "";
String[] key1splited = splitStringEvery(key1, 2);
String[] key2splited = splitStringEvery(key2, 2);
for (int i = 0; i < key2splited.length; i++) {
    if (key2splited[i].equals("D1")) {
        res = key2splited[i];
    }
    if (key2splited[i].equals("H1")) {
        res += key2splited[i];
        for (int j = 0; j < key1splited.length; j++) {
            if (key1splited[j].equals("X1")) {
                res += key1splited[j];
            }
            if (key1splited[j].equals("X2")) {
                res += key1splited[j];
            }
            if (key1splited[j].equals("X3")) {
                res += key1splited[j];
            }
        }
    }
}

依此类推,但这不是一个好方法,因为字符串将要更改。

nem035

我认为最简单的方法是将令牌与每个密钥分开(2个字符长的令牌,如X1,D1等),然后将令牌合并为一个String

此外,您还可以重新整理String,提取随机令牌并构建许可证密钥:

Random rand = new Random(); // generate Random object only once for efficiency purposes

// ... rest of your code

String getLicenceKey(String key1, String key2){
    List<String> tokens = new ArrayList<String>();

    // add tokens from key1
    for(int i = 0; i < key1.length(); i += 2) {
        tokens.add(key1.substring(i, i + 2));
    }

    // add tokens from key2
    for(int i = 0; i < key2.length(); i += 2) {
        tokens.add(key2.substring(i, i + 2));
    }

    // build the random result out of the tokens
    StringBuilder result = new StringBuilder();
    while(tokens.size() != 0){
        int randomPos = rand.nextInt(tokens.size());
        result.append(tokens.remove(randomPos));
    }

    return result.toString();
}

您提供的输入的样本输出:

m2XnD2m1H2X1..Y3Y1Y2Y4M1X2M2D1H1X4X3
H2Y2X4M1M2H1Y3Y1m2X1X2D1m1Xn..X3Y4D2
X1X4X3H2D2H1..M2m2Y3m1Y4M1D1Y1X2XnY2

key1 =“ A1B1C1 ”,key2 =“ D1E1F1 ”的示例输出

D1F1B1A1C1E1
C1A1D1B1E1F1
F1E1B1C1D1A1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将这两个 Less @Media 查询与“或”条件结合起来?

来自分类Dev

PHP在随机位置比较两个字符串

来自分类Dev

如何将锈蚀的寿命结合起来?

来自分类Dev

如何将 ramda 与重构结合起来?

来自分类Dev

如何将这两种路线结合起来?

来自分类Dev

如何将这两种方法结合起来?

来自分类Dev

如何将 2 个数据帧与对相同位置的值应用函数结合起来

来自分类Dev

将两个 MySQL 查询与计算结合起来

来自分类Dev

将两个元组与嵌套列表理解结合起来

来自分类Dev

将两个python mysql查询与一个条件结合起来

来自分类Dev

在使用sha1的查询中将字符串与列名结合起来

来自分类Dev

如何在Java中两个类似的方法结合起来?

来自分类Dev

如何将play框架和angular2结合起来?

来自分类Dev

如何将2种方式的数据绑定与模型驱动的表单结合起来?

来自分类Dev

Haskell:如何将标量值和单子值结合起来?

来自分类Dev

在Redshift中,如何将CTAS与“如果不存在”子句结合起来?

来自分类Dev

如何将Azure测试计划与管道结合起来?

来自分类Dev

如何将词汇表和语法结合起来?

来自分类Dev

Rust:如何将Entry API与拥有的数据结合起来?

来自分类Dev

如何将获胜者和工作组结合起来?

来自分类Dev

如何将导航栏和分页结合起来?

来自分类Dev

T-SQL:如何将多行代码与 if 语句结合起来

来自分类Dev

如何将 3 个选择器与 a:hover 标签结合起来?

来自分类Dev

如何将数据帧与熊猫中的冗余行结合起来

来自分类Dev

如何将 Join 与聚合函数和分组依据结合起来

来自分类Dev

如何将 var 与 var + repeat 结合起来?

来自分类Dev

如何将 NSLayout 约束与 CGrect 框架(Swift4)结合起来

来自分类Dev

如何将数据切换与数据工具提示结合起来?

来自分类Dev

如何将延迟函数调用的顺序和并行执行结合起来?

Related 相关文章

  1. 1

    如何将这两个 Less @Media 查询与“或”条件结合起来?

  2. 2

    PHP在随机位置比较两个字符串

  3. 3

    如何将锈蚀的寿命结合起来?

  4. 4

    如何将 ramda 与重构结合起来?

  5. 5

    如何将这两种路线结合起来?

  6. 6

    如何将这两种方法结合起来?

  7. 7

    如何将 2 个数据帧与对相同位置的值应用函数结合起来

  8. 8

    将两个 MySQL 查询与计算结合起来

  9. 9

    将两个元组与嵌套列表理解结合起来

  10. 10

    将两个python mysql查询与一个条件结合起来

  11. 11

    在使用sha1的查询中将字符串与列名结合起来

  12. 12

    如何在Java中两个类似的方法结合起来?

  13. 13

    如何将play框架和angular2结合起来?

  14. 14

    如何将2种方式的数据绑定与模型驱动的表单结合起来?

  15. 15

    Haskell:如何将标量值和单子值结合起来?

  16. 16

    在Redshift中,如何将CTAS与“如果不存在”子句结合起来?

  17. 17

    如何将Azure测试计划与管道结合起来?

  18. 18

    如何将词汇表和语法结合起来?

  19. 19

    Rust:如何将Entry API与拥有的数据结合起来?

  20. 20

    如何将获胜者和工作组结合起来?

  21. 21

    如何将导航栏和分页结合起来?

  22. 22

    T-SQL:如何将多行代码与 if 语句结合起来

  23. 23

    如何将 3 个选择器与 a:hover 标签结合起来?

  24. 24

    如何将数据帧与熊猫中的冗余行结合起来

  25. 25

    如何将 Join 与聚合函数和分组依据结合起来

  26. 26

    如何将 var 与 var + repeat 结合起来?

  27. 27

    如何将 NSLayout 约束与 CGrect 框架(Swift4)结合起来

  28. 28

    如何将数据切换与数据工具提示结合起来?

  29. 29

    如何将延迟函数调用的顺序和并行执行结合起来?

热门标签

归档