java 生成超长字符串中文 效率要高! 要求 : 1. 字符串特别长,所以要效率高! 2. 字符串里面只能出现汉字,并且只能是常用汉字! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个简单啊,字符集编码有个段是中文的,先随机在范围内生成int型,转成16进制的4位数,再转汉字就OK了。 就是用UNICODE中的中文段编码,就如2楼所说的方式转换趁汉字就可以了! 不知道这个可以么?仅采用 GB2312 一级字库,即 B0A1~D7FE 共计 3760 个字符。public class Test01 { public static void main(String[] args) { long t0, t1; t0 = System.currentTimeMillis(); String str = getRandomString(2000000); t1 = System.currentTimeMillis(); System.out.println(t1 - t0); System.out.println(str.length()); } private static String getRandomString(int length) { if(length < 1) { return ""; } byte[] bys = new byte[length * 2]; Random ran = new Random(); for(int i = 0; i < length; i++) { bys[2 * i] = (byte)(ran.nextInt(40) + 176); bys[2 * i + 1] = (byte)(ran.nextInt(94) + 161); } return new String(bys); }}我的机器比较烂,生 200 万字符串的时间是 600ms 恭喜 火龙果@宝家族 你的答案按完全符合要求,但是当将这2w汉字用System。out.print输出时机子将变得特卡,时间主要消耗在了输出函数上 ! 如果你是在其他系统平台上运行的话,需要将return new String(bys);改成String s = null;try { s = new String(bys, "gbk");} catch (...) {}return s;我是在 Windows 上做的,默认就是 GBK 的。 提交后,URL地址,如何去掉.do呢? 。发现了一个奇怪的问题,1.20+1.15居然得2.3499999999999996 如何在文件菜单中控制最近打开的文件? 关于合并EXCEL单元格的算法? 老问题~还是没有弄清楚~高手们~帮帮我这个菜鸟吧~! JBUILDER下如何引入第三方的包 list问题 付费求助,一个文件名比较复制 不知为何错误!输入字符传入setBackground(Color.white)设定颜色。帮忙!帮忙! 谁做过oa的图形化自定义流程.(我现在计划用java 和applet开发)。 javamail 发送邮件出错 急急!!! 怎么去走java编程之路?
public class Test01 {
public static void main(String[] args) {
long t0, t1;
t0 = System.currentTimeMillis();
String str = getRandomString(2000000);
t1 = System.currentTimeMillis();
System.out.println(t1 - t0);
System.out.println(str.length());
}
private static String getRandomString(int length) {
if(length < 1) {
return "";
}
byte[] bys = new byte[length * 2];
Random ran = new Random();
for(int i = 0; i < length; i++) {
bys[2 * i] = (byte)(ran.nextInt(40) + 176);
bys[2 * i + 1] = (byte)(ran.nextInt(94) + 161);
}
return new String(bys);
}
}我的机器比较烂,生 200 万字符串的时间是 600ms
try {
s = new String(bys, "gbk");
} catch (...) {
}
return s;我是在 Windows 上做的,默认就是 GBK 的。