有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓在java中加入字符串组以创建复合字符串

我正在尝试创建一个激活,用于激活我的安卓应用程序,看起来像这个xxx xxx xxx xxx xxx现在我已经编写了一个随机字母数字键生成器方法,如下所示

    // function to generate a random string of length n
   public static String generateRandom(int n)
    {
    // chose a Character random from this String
    String AlphaNumericString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            + "0123456789" + "abcdefghijklmnopqrstuvxyz";
    // create StringBuffer size of AlphaNumericString
    StringBuilder sb = new StringBuilder(n);
    for (int i = 0; i < n; i++) {
        // generate a random number between
        // 0 to AlphaNumericString variable length
        int index = (int)(AlphaNumericString.length() * Math.random());

        // add Character one by one in end of sb
        sb.append(AlphaNumericString .charAt(index));
    }
    return sb.toString();
}

这部分应该生成一组独特的字母数字键,其长度在参数中提供。在本例中,我将使用4

我还有另一个方法,它四次调用generateradom()以获取四组密钥,然后将它们连接在一起,并用连字符分隔,如下所示

    public static String generateKey(int length){
   StringBuilder key = new StringBuilder();
    for(int i = 0; i<length; i++){
        if(key.toString().length()==0){
            key.append(generateRandom(4));
        }else if(key.toString().length() % 4==0){
           key.append("-");
       }else{
           key.append(generateRandom(4));
       }
    }
   return key.toString();
}

现在,当我运行这个程序时,我希望输出看起来像XXXXXXXXXXXXXXXXXXXX,但我得到的看起来像xxxx-XXXXXXXXXXXXXX,我可能做错了什么,或者如何实现我的目标


共 (3) 个答案

  1. # 1 楼答案

    public static String generateKey(int length)
    {
            StringBuilder key = new StringBuilder();
    
            for(int i = 0; i<length-1; i++)
            {
                    key.append(generateRandom(4));
                    key.append("-");
            }
            key.append(generateRandom(4));
            
            return key.toString();
        }
    

    对于每个零件,添加“-”,不勾选(如果…),最后一个在循环之后做

  2. # 2 楼答案

    public static String generateKey(int length){
            StringBuilder key = new StringBuilder();
            for(int i = 0; i<length; i++){
                String op = generateRandom(length);
                if (i == length-1)
                    key.append(op);else key.append(op).append("-");
            }
            return key.toString();
        }
    
  3. # 3 楼答案

    您可以通过调用键来实现这一点。附加(generateradom(4))在循环中,并在不是最后一个计数的每个计数上添加连字符。这样做可以避免在生成的字符串末尾追加

    public static String generateKey(int length){
               StringBuilder key = new StringBuilder();
                for(int i = 0; i<length; i++){
                    key.append(generateRandom(4));
                    if (i<length-1)
                        key.append("-");
                }
               return key.toString();
    }