有 Java 编程相关的问题?

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

Java整数问题,如何正确设置约束和设置不允许的整数

如你们所见,我试图在这里设置一些循环,一个两个if语句,我在java脚本中使用嵌套for循环,所以我认为这可能会起作用,运气不太好

观察第三组,我从1000 - 10000开始制作,所以它将从1000-9999开始制作,因为我不知道如何从0000-9999开始制作,它需要打印那些0(电话号码)

我是编程的新手,所以请对我说清楚简单,谢谢

目标

  1. xxx xxx xxxx
  2. 第一组=3个数字,不能有8个或9个
  3. 第二组,不大于742
  4. 第三组=0000-9999


import java.util.Random;
import java.lang.Math;


public class Main{
    public static void main(String[] args){
        Random  rand= new Random();

        int a1 = rand.nextInt(7);
        int a2 = rand.nextInt(7);
        int a3 =rand.nextInt(7);


        int b = rand.nextInt(741);
       int c = rand.nextInt(9999);

        while (b.length<4)
        {
            b (string)=  "0"+ c ;
        }



        while (c.length()<4)
        {
            c (string)= "0"+ c ;
        }


        System.out.println(a1 +""+ a2+ ""+ +a3+ "-" + b + "-" + c );


    }


    }











共 (2) 个答案

  1. # 1 楼答案

    您只需为a执行此操作即可:

    int array[] = {0, 1, 2, 3, 4, 5, 6, 7};
    String st = String.format("%d%d%d", array[(int)(Math.random()*8)] , array[(int)(Math.random()*8)] , array[(int)(Math.random()*8)]);
    

    并在控制台中显示输出:

    System.out.println(st + "-" + b + "-" + c );
    
  2. # 2 楼答案

    嘿,伙计,到目前为止,这就是我能提供给你的:

        import java.util.Random;
    
        public class HelpYou {
    
            public static void main(String[] args) {
                HelpYou helpYou = new HelpYou();
                String a1 = helpYou.generateFirstSet();
                String a2 = helpYou.generateSecondSet();
                String a3 = helpYou.generateThirdSet();
                System.out.println("GOAL: XXX-XXX-XXXX");
                System.out.println("RESULT: "+a1 + "-" + a2 + "-" + a3);
    
            }
    
            public String generateFirstSet() {
                Random rand = new Random();
                int a1;
                String firstSet = "";
                for (int i = 0; i < 3; i++) {
                    a1 = rand.nextInt(7);
                    firstSet = firstSet.concat("" + a1);
                }
                return firstSet;
            }
    
            public String generateSecondSet() {
                String secondSet = "";
                do {
                    secondSet = generateFirstSet();
                // This while solves your constraint :)
                } while (Integer.parseInt(secondSet) > 742);
    
                return secondSet;
            }
    
        public String generateThirdSet() {
            Random rand = new Random();
            int a1;
            String thirdSet = "";
            for (int i = 0; i < 4; i++) {
                a1 = rand.nextInt(9);
                thirdSet = thirdSet.concat("" + a1);
            }
            return thirdSet;
        }
    
    }
    

    我想这是你想要的,希望它能帮助你,这是一种面向对象的方法,0复杂性,如果你需要我澄清任何事情或任何问题,请随意

    此外,使用int时,您试图达到目标的方式是不可能的,因为随机函数永远不会给您一个0左右的数字(093或0094),它只能给您1+个数字(101或10或1000左右)。我的意思是number = rand.nextInt(9999);永远不会给你一个0左右的数字(0000左右)。因此,您需要自己构建第二个和第三个集合,就像构建第一个集合一样(这是一个更简单的解决方案):

    import java.util.Random;
    
    public class HelpYouSimplier {
    
        public static void main(String[] args) {
            Random rand = new Random();
            int a1 = rand.nextInt(7);
            int a2 = rand.nextInt(7);
            int a3 = rand.nextInt(7);
            String b = "";
    
            do {
              int b1 = rand.nextInt(7);
              int b2 = rand.nextInt(4);
              int b3 = rand.nextInt(2);
              b = "" + b1 + b2 + b3;
            } while (Integer.parseInt(b) > 742);
    
            // Variables for third set
            int c1 = rand.nextInt(9);
            int c2 = rand.nextInt(9);
            int c3 = rand.nextInt(9);
            int c4 = rand.nextInt(9);
    
            String c = "" + c1 + c2 + c3 + c4;
    
            System.out.println(a1 + "" + a2 + "" + +a3 + "-" + b + "-" + c);
    
        }
    
    }