// 随机生成基本汉字 库量20902字 // 编码库范围 4E00-9FA5 String randomChinese({minLength: 1, maxLength: 1}) { String str = ''; // 19968 final int _min = int.parse('0x4E00'); // 40869 final int _max = int.parse('0x9FA5'); _r(max) { return Random().nextInt(max); }
var ma = _r(maxLength); // 最少要多少长度 ma = ma > minLength ? ma : minLength; for (var i = 0; i < ma; i++) { var r = Random().nextInt(_max); // 如果大于第一个汉字编码 if (r > _min) { str = str + String.fromCharCode(r); } else { var a = _r(4), b = _r(9), c = _r(9), d = _r(9), e = _r(9); // 范围一定在1-4 a = a >= 1 && a <= 4 ? a : 1; // 第一位达到最大的情况下,b不能超过0 b = a == 1 ? 9 : a >= 4 ? 0 : b; c = a == 1 ? 9 : a >= 4 ? c <= 8 ? c : 8 : c; d = a == 1 ? d >= 6 ? d : 6 : a >= 4 ? d <= 6 ? d : 6 : d; e = a == 1 ? e >= 8 ? e : 8 : a >= 4 ? e <= 9 ? e : 9 : e; str = str + String.fromCharCode(int.parse('$a$b$c$d$e')); } } return str; }