不知道你问的是不是生成这种图片验证码?如果只要一个随机四位数 那这行代码就够了(new Random().nextInt(9000) + 1000;),如果是生成页面图片验证码就是下面的了: //设定 响应模式 resp.setContentType("image/jpeg"); // 生成令牌环数据; Integer token = new Random().nextInt(9000) + 1000; // 保存令牌环数据到session中 req.getSession().setAttribute(IMAGE_TOKEN_NAME, token); // 生成令牌环图片 ServletOutputStream out = resp.getOutputStream(); BufferedImage img = new BufferedImage(60, 20, BufferedImage.TYPE_INT_RGB); Graphics g = img.getGraphics(); g.setColor(Color.YELLOW); g.fillRect(0, 0, img.getWidth(), img.getHeight()); g.setColor(Color.BLUE); g.setFont(new Font("", Font.BOLD, 18)); g.drawString(String.valueOf(token), 10, 16); ImageIO.write(img, "jpg", out); out.close();
轮台网站建设公司成都创新互联,轮台网站设计制作,有大型网站制作公司丰富经验。已为轮台上千余家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的轮台做网站的公司定做!
下面简单的介绍他们的功能和用途,执行效率等。每个都有各自的优缺点看你是做甚什么方面的研究开发用。.net,是网站编程,现在很多都用这个,但是这个语言编程都有统一思路,很好掌握。窒息那个效率不是很高;php 支持跨平台,很容易学会,执行的效率很高;asp是ASP.net的前身,它比较稳定,比.net要弱一点。但是比.net好学。jsp 是网页编程,这个学习大约一周就能搞定,不过这个得多实践,不然的话,时间长了,就容易忘记。
我自己做的系统里面用作验证码的JSP的%@page contentType="image/jpeg;charset=utf-8"%%@page import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*" %%@ page import="java.io.OutputStream" %html body %! Color getRandColor(int fc,int bc) { Random rd=new Random(); if(fc255) fc=255; if(bc255) bc=255; int red=fc+rd.nextInt(bc-fc); int green=fc+rd.nextInt(bc-fc); int blue=fc+rd.nextInt(bc-fc); return new Color(red,green,blue); } % % Random r=new Random(); response.addHeader("Pragma","No-cache"); response.addHeader("Cache-Control","no-cache"); response.addDateHeader("expires",0); int width=90; int height=23; BufferedImage pic=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics gc=pic.getGraphics(); gc.setColor(getRandColor(200,250)); gc.fillRect(0,0,width,height); String[] rNum ={"0","1","2","3","4","5","6","7","8","9","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","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[] style = {Font.PLAIN,Font.BOLD,Font.ITALIC,Font.PLAIN+Font.BOLD, Font.BOLD+Font.ITALIC,Font.PLAIN+Font.ITALIC,Font.PLAIN+Font.BOLD+Font.ITALIC}; gc.setColor(Color.WHITE); gc.drawLine(0,30,90,10); gc.setColor(getRandColor(160,200)); for (int i=0;i50;i++) { int x = r.nextInt(width); int y = r.nextInt(height); int xl = r.nextInt(10); int yl = r.nextInt(10); gc.drawLine(x,y,x+xl,y+yl); } gc.setColor(getRandColor(60,150)); String rt = ""; for(int i=0;i4;i++){ String temp = rNum[r.nextInt(62)]; rt = rt+temp; gc.setFont(new Font("Times New Roman",style[r.nextInt(7)],15)); gc.drawString(temp,5+i*15+r.nextInt(10),10+r.nextInt(10)); } gc.dispose(); session.setAttribute("randNum",rt); OutputStream os=response.getOutputStream(); ImageIO.write(pic,"JPEG",os); System.out.println("当前验证码为:"+session.getAttribute("randNum")); os.flush(); os.close(); os=null; response.flushBuffer(); out.clear(); out = pageContext.pushBody(); % /body/html
//题主估计想问产生一个四个不同数字的四位数//
//首先千位不为0
String number=String.valueOf((int)(Math.random()*9+1));
//再产生其它三位数
for(int i=0;i=2;){
String newnumber=String.valueOf((int)(Math.random()*9));
if(!number.contains(newnumber)){
number=number+newnumber;
i++;
}
}
System.out.println(number);
可以借助Math类里的random方法或者借助Random类来实现
1、使用Math类的random方法实现产生1000-9999的随机数代码如下:
int a = (int)(Math.random()*(9999-1000+1))+1000;//产生1000-9999的随机数
2、使用Random类实现代码:
import java.util.Random;//导入Random包
public class Ranadd {
public static void main(String[] args) {
int x;//定义两变量
Random ne=new Random();//实例化一个random的对象ne
x=ne.nextInt(9999-1000+1)+1000;//为变量赋随机值1000-9999
System.out.println("产生的随机数是:"+x);//输出
}
}
Math.random()产生一个0到1的浮点数(小数)\x0d\x0a四位数,1000到9999,所以\x0d\x0a(int)(Math.random()*9000+1000)\x0d\x0a这样,最小是0*9000+1000是1000\x0d\x0a因为Math.random()不可能为1,所以最大数小于1*9000+1000=10000