Dart 如何生成6位随机数
我想生成一个随机的六位数。我尝试使用Dart 如何生成6位随机数,dart,flutter,Dart,Flutter,我想生成一个随机的六位数。我尝试使用Random类,但是new Random().nextInt(999999)生成一些少于六位数的数字。所以您只需要100000到(包括)999999的数字 您可以获得此范围内的一个随机数(900000),并将100000添加到您获得的随机数中: var rng=new Random(); var代码=rng.nextInt(900000)+100000; 这将始终为您提供一个6位数的随机数。void main(){ void main() { var r
Random
类,但是new Random().nextInt(999999)
生成一些少于六位数的数字。所以您只需要100000到(包括)999999的数字
您可以获得此范围内的一个随机数(900000),并将100000添加到您获得的随机数中:
var rng=new Random();
var代码=rng.nextInt(900000)+100000;
这将始终为您提供一个6位数的随机数。void main(){
void main() {
var rnd = new math.Random();
var next = rnd.nextDouble() * 1000000;
while (next < 100000) {
next *= 10;
}
print(next.toInt());
}
var rnd=new math.Random();
var next=rnd.nextDouble()*1000000;
而(下一个<100000){
下一个*=10;
}
打印(next.toInt());
}
您还可以生成6个不同的数字,然后将它们串联成一个字符串,如果需要,还可以将其转换为整数
import 'dart:math';
main(){
var rndnumber="";
var rnd= new Random();
for (var i = 0; i < 6; i++) {
rndnumber = rndnumber + rnd.nextInt(9).toString();
}
print(rndnumber);
}
import'dart:math';
main(){
var rndnumber=“”;
var rnd=新随机数();
对于(变量i=0;i<6;i++){
rndnumber=rndnumber+rnd.nextInt(9.toString();
}
打印(rndnumber);
}
以下类将生成一个包含“n”个数字的整数或一个包含“n”个数字的字符串
数值法速度会快得多,但位数有限
import 'dart:math';
class RandomDigits {
static const MaxNumericDigits = 17;
static final _random = Random();
static int getInteger(int digitCount) {
if (digitCount > MaxNumericDigits || digitCount < 1) throw new RangeError.range(0, 1, MaxNumericDigits, "Digit Count");
var digit = _random.nextInt(9) + 1; // first digit must not be a zero
int n = digit;
for (var i = 0; i < digitCount - 1; i++) {
digit = _random.nextInt(10);
n *= 10;
n += digit;
}
return n;
}
static String getString(int digitCount) {
String s = "";
for (var i = 0; i < digitCount; i++) {
s += _random.nextInt(10).toString();
}
return s;
}
}
void main() {
print(RandomDigits.getInteger(6));
print(RandomDigits.getString(36));
}
import'dart:math';
类随机数字{
静态常量MaxNumericDigits=17;
静态最终随机=随机();
静态int getInteger(int digitCount){
如果(digitCount>MaxNumericDigits | | digitCount<1)抛出新的RangeError.range(0,1,MaxNumericDigits,“数字计数”);
var digit=\u random.nextInt(9)+1;//第一个数字不能是零
int n=数字;
对于(var i=0;i
输出:
995723
1988152073328010613668637448423456900
下面是一个Dart扩展方法,它将生成具有指定位数的非负随机整数:
extension RandomOfDigits on Random {
/// Generates a non-negative random integer with a specified number of digits.
///
/// Supports [digitCount] values between 1 and 9 inclusive.
int nextIntOfDigits(int digitCount) {
assert(1 <= digitCount && digitCount <= 9);
int min = digitCount == 1 ? 0 : pow(10, digitCount - 1);
int max = pow(10, digitCount);
return min + nextInt(max - min);
}
}
我也有同样的问题。虽然有3-4种解决方法,但我发现下面的一种方法很简单,而且很有条理。 只需检查长度匹配的数量。找到下面的代码
Integer otp = new Random().nextInt(999999);
int noOfOtpDigit=6;
while(Integer.toString(otp).length()!=noOfOtpDigit) {
otp = new Random().nextInt(999999);
}
String otpString = String.valueOf(otp);
import'dart:math';
void main(){
打印(get6DigitNumber());
}
字符串get6DigitNumber(){
随机=随机();
字符串编号=“”;
对于(int i=0;i<6;i++){
number=number+random.nextInt(9).toString();
}
返回号码;
}
这是您无限量提供的六位数随机数
String getRandomNumber(){
final r = Random();
return List<int>.generate(6, (index) => r.nextInt(10)).fold<String>("", (prev, i) => prev += i.toString());
}
String getRandomNumber(){
最终r=随机();
返回列表.generate(6,(index)=>r.nextInt(10)).fold(“,(prev,i)=>prev+=i.toString());
}
\u generateRandomNumber(){var code=new Random().nextInt(9999999);print(code);}我也尝试了这个方法来创建一个最小长度{u generateRandomNumber(){var code=new Random().nextInt(111111>>99999);print(code);}结果如何不满足您的要求?@GünterZöchbauer它不返回6个数字长度它随机出现在0到9999999之间,例如,有时是122,但我希望它仅为6个数字长度生成一个非负随机整数,均匀分布在从0(包含)到最大(排除)的范围内。
。您的解决方案可以从零开始,并且永远不会包含我发现的最简单的9。。thnx
import 'dart:math';
void main() {
print(get6DigitNumber());
}
String get6DigitNumber(){
Random random = Random();
String number = '';
for(int i = 0; i < 6; i++){
number = number + random.nextInt(9).toString();
}
return number;
}
String getRandomNumber(){
final r = Random();
return List<int>.generate(6, (index) => r.nextInt(10)).fold<String>("", (prev, i) => prev += i.toString());
}