从两个用户给定值生成字母 [英] generating letters from two user given values

查看:79
本文介绍了从两个用户给定值生成字母的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试编写一种在两个给定的char值之间生成随机字母的方法.到目前为止,我相信最好的方法是将char字符转换为ascii值,然后将其与用户输入进行比较,并在这两个值之间进行for循环.我的问题是我不知道在转换值之后如何比较这些值,到目前为止,这是我的代码:

  public   void  add( char  fromChar, char  toChar){
        随机a =  Random();
       字符 []字符= {'  a''  b''  c''  d''  e'' ' ' '  i''  j' '  k''  l''  m''  n''  o''  p''  q''  r' s' t' u''  v''  w' '  x''  y''  z' };
        int 开始= 65;
        for ( int  i = 0; i< characters.length;>字符[i] =开头;
         开始++;
         
         
       }
        for ( int  i = fromChar; i< tochar;> System.out.println(a.nextInt (fromChar,toChar);
       }
        
    } 



[edit]删除了粗体的虚假字符,添加了代码块-OriginalGriff [/edit]

解决方案

您需要根据任意值设置种子,然后调用具有限制范围的方法.像这样的东西:

  int  range = toChar-fromChar;
 int  seed = fromChar * toChar;
随机rr = 随机(种子);
 for ( int  i =  0 ; i <  10 ; ++ i){
     char  randomChar =( char )(fromChar + rr.nextInt(range));
    System.out.println("  + randomChar);
} 


i have been trying to write a method that generates random letters between two given char values. So far i believe the best way is to convert the char characters to ascii values then compare them with the user input and make a for loop between those 2 values. My problem is i dont know how to compare the values after they have been converted here is my code so far:

public void add (char fromChar, char toChar){
        Random a = new Random();
       char[] characters = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
       int start =65;
       for(int i =0; i<characters.length;>         characters[i] = start;
         start++;
         
         
       }     
       for(int i = fromChar; i<tochar;>           System.out.println(a.nextInt(fromChar,toChar);
       }
        
    }



[edit]Spurious bold removed, Code block added - OriginalGriff[/edit]

解决方案

You need to set a seed based on some arbitrary value, then call the nextInt() method with a limiting range. Something like:

int range = toChar - fromChar;
int seed = fromChar * toChar;
Random rr = new Random(seed);
for (int i = 0; i < 10; ++i) {
    char randomChar = (char)(fromChar + rr.nextInt(range));
    System.out.println("Next character: " + randomChar);
}


这篇关于从两个用户给定值生成字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆