生成与用户输入长度相同的数字

时间:2015-02-11 06:04:29

标签: java

我不知道这个标题是否适合我要问的问题。

String input = scan.nextLine();
for(int ip=0; ip<=input.length(); ip++)
 {
 Random rg = new Random();
 int n = rg.nextInt(ip=input.length());
 System.out.println(Integer.toBinaryString(n));
 }

从上面的代码中,我提示用户输入任意数量的字符。使用for循环获取输入的长度,生成的随机二进制数字的长度是不同的。如何编辑让随机生成器打印出与用户输入相同的长度?示例如图所示: 我的意见:99999 假设输出:00110 我的输出:11

2 个答案:

答案 0 :(得分:0)

你可以使用循环并检查n的值,如果它的二进制文件具有相同的长度然后打印。代码如下:

    Scanner scan = new Scanner(System.in);
    String input = scan.nextLine();
    for(int ip=0; ip<=input.length(); ip++){
    Random rg = new Random();
    int n = 0;
    while((n = rg.nextInt(ip=input.length()*input.length())) < Math.pow(2, input.length()-1)
            && (n = rg.nextInt(ip=input.length()*input.length())) > Math.pow(2, input.length()))
    {
        continue;
    }
    System.out.println(Integer.toBinaryString(n)); 
    }

答案 1 :(得分:0)

// note that StringUtils in org.apache.commons.lang3.StringUtils
    private static final String getRandomBinaryNumber() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter input: ");
        String input = scanner.next();
        System.out.println();
        int len = input.length();
        System.out.println("Input length: " + len);
        Random rg = new Random();
        Integer randomInt = rg.nextInt((int) Math.pow(2, len));
        String binaryString = Integer.toBinaryString(randomInt);
        final String result = StringUtils.leftPad(binaryString, len, "0");
        System.out.println("Random output: " + result);
        return result;
    }