java 如何创建一个类或方法能够给出产生指定位数的一个随机数?

java 如何创建一个类或方法能够给出产生指定位数的一个随机数?
例如
Rnd(2) 可给出一个随机两位数 比如 23
Rnd(5) 可给出一个随机五位数 比如 33344

最好有具体代码,谢谢!

  可以用Math.random()函数生成一个随机数,然后检查位数,如果位数不符合要求,就重新生成一个随机数,下面的程序是一个实现。

public class RandomTest
{
    public static int rand(int n)
    {
        int ans = 0;
        while(Math.log10(ans)+1<n)
            ans = (int)(Math.random()*Math.pow(10, n));
        return ans;
    }
    public static void main(String[] args)
    {
        for(int i=0;i<1000;i++)
        {
            System.out.println(rand(4));
        }
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26

具体的代码

    /*
     * 返回长度为【strLength】的随机数,在前面补0
     */
    private static String getFixLenthString(int strLength) {
        
        Random rm = new Random();
        
        // 获得随机数
        double pross = (1 + rm.nextDouble()) * Math.pow(10, strLength);

        // 将获得的获得随机数转化为字符串
        String fixLenthString = String.valueOf(pross);

        // 返回固定的长度的随机数
        return fixLenthString.substring(1, strLength + 1);
    }

这么用

 
     System.out.println(getFixLenthString(6));
     i++;

追问

请问是否能按照上面的方法给出一个十万位的“大数随机数”,谢谢!

本回答被提问者采纳
第2个回答  2014-01-31
【俊狼猎英】团队为您解答~
感觉应该不难,比如说产生一个三位数
首先用(int)Math.Random()*1000产生一个0~999的整数,然后只要加一个判断,如果小于100,就再产生一次,如果符合条件返回就可以了
第3个回答  2018-02-28
static Random random=new Random();//生成随机数的对象
public static void main(String[] args) {
System.out.println(rand(5));
}
public static String rand(int count){
String result="";
for (int i = 0; i < count; i++) {
int number=random.nextInt(9);//随机生成0-9之间的数字
if(i==0&&number==0){
i--;//第一位数字不能为0
continue;
}
result+=number;
}
return result;
}

第4个回答  2014-01-31
按照这位网友的回答,稍加改动可能更合理一些。把产生数字的代码写成:(int)Math.Random() * 900 + 100;
这样得到的数字就是三位数:100到999了。

问一个JAVA的小问题
publicclassPerson{Stringname;}publicclassSubextendsPerson{publicvoidSub(){System.out.println(name);}}在myeclipse中上面有一个黄色的小警告publicvoidSub(){在这一行出的thisme... public class Person{ String name;}public class Sub extends Person{ public void Sub(){ System.out.println(name); }}在...

JAVA是什么意思?
(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。 (2)分布式:Java带有很强大的TCP\/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程...

程序设计中的指令是什么?有哪几种?
执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使...

Java编程中 常见的异常有哪几种
方法一:将需要处理的代码块放在一个try...catch...中try{\/\/需要处理异常的代码}catch(XXXException ef){ef.printStackTrace();} 我们方法一就是要将我们不确定的代码放入try...catch中,先进行try一下,如果没有异常,则不会触发catch,没有输出,一旦出现异常,那么catch就会工作,在catch中捕获异...

...请问谁能给个根据源程序生成测试数据的办法或软件?
excel就可以生成数据 用过excel没 rand()函数可以生成0~1的随机实数 也就是说,你要生成0~1000的数据可以这样做 =int(rand()*1000)然后点着单元格的右下角扩展 右边的行就是数据的个数 最后 复制 出来 粘贴 到 .in文件就是了 如果正式比赛没有excel、 自己写程序吧 pascal randomize+random()c...

spring框架中用到了哪些设计模式?
基于这个问题考虑,Java要求如果定义的复合对象要有排序的功能,就自行实现Comparable接口或Comparator接口. 7.原型模式:使用原型模式创建对象比直接new一个对象在性能上好得多,因为Object类的clone()方法是一个native方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。 8.迭代器模式:Iterable接口...

java多线程开发的同步机制有哪些
1、 什么时候必须同步?什么叫同步?如何同步? 要跨线程维护正确的可见性,只要在几个线程之间共享非 final 变量,就必须使用 synchronized(或 volatile)以确保一个线程可以看见另一个线程做的更改。为了在线程之间进行可靠的通信,也为了互斥访问,同步是必须的。这归因于java语言规范的内存模型,它规定了:一个线程所做...

jsp中servlet的作用?
4.1编写Java类,继承HttpServlet 创建一个MyServletjava类,继承HttpServlet实现service方法: public?class?MyServlet?extends?HttpServlet?{ ???@Override ???protected?void?service(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{ ???\/\/设置字符编码 ???request.setChar...

Java语言的特点
Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。 2�平台无关性 Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源...

JSP中useBean中的type和beanName属性到底什么意思?
记住,变量的名由id属性来指定。beanname 赋予bean一个名字,您应该在beans的实例化方法中提供。它允许您给出type和一个beanname,并省略类属性。 三、jsp:setproperty action 语法:<jsp:setpropertyname="beaninstancename"< property="*" |property="propertyname" [ param="parametername" ] |property="property...

相似回答