当前位置: 代码迷 >> Web前端 >> java随机生成汉语
  详细解决方案

java随机生成汉语

热度:154   发布时间:2012-09-24 13:49:41.0
java随机生成中文
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Random;

public class ChineseUtils {
	private static Random random = null;

	private static Random getRandomInstance() {
		if (random == null) {
			random = new Random(new Date().getTime());
		}
		return random;
	}

	public static String getChinese() {
		String str = null;
		int highPos, lowPos;
		Random random = getRandomInstance();
		highPos = (176 + Math.abs(random.nextInt(39)));
		lowPos = 161 + Math.abs(random.nextInt(93));
		byte[] b = new byte[2];
		b[0] = (new Integer(highPos)).byteValue();
		b[1] = (new Integer(lowPos)).byteValue();
		try {
			str = new String(b, "GB2312");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return str;
	}

	public static String getFixedLengthChinese(int length) {
		String str = "";
		for (int i = length; i > 0; i--) {
			str = str + ChineseUtils.getChinese();
		}
		return str;
	}

	public static String getRandomLengthChiness(int start, int end) {
		String str = "";
		int length = new Random().nextInt(end + 1);
		if (length < start) {
			str = getRandomLengthChiness(start, end);
		} else {
			for (int i = 0; i < length; i++) {
				str = str + getChinese();
			}
		}
		return str;
	}

	public static void main(String args[]) {
		System.out.println(ChineseUtils.getChinese());
		System.out.println(ChineseUtils.getFixedLengthChinese(20));
		System.out.println(ChineseUtils.getRandomLengthChiness(2, 5));
	}
}
  相关解决方案