Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Dart中将int转换为字符串?_Dart - Fatal编程技术网

如何在Dart中将int转换为字符串?

如何在Dart中将int转换为字符串?,dart,Dart,现在,我有一个由计数器表示的数字。这个数字是递增的,并且在不断变化。我的目标是每3位数字加上逗号,使数字在我的应用程序中更具可读性。我遇到的唯一问题是 String number = counter.replaceAllMapped(new RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), (Match m) => '${m[1]},'); 拒绝将整数计数器作为int。

现在,我有一个由计数器表示的数字。这个数字是递增的,并且在不断变化。我的目标是每3位数字加上逗号,使数字在我的应用程序中更具可读性。我遇到的唯一问题是

String number = counter.replaceAllMapped(new RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), 
                                            (Match m) => '${m[1]},');
拒绝将整数
计数器
作为int。在运行它之前,如何将
int计数器
转换为
字符串中间

String number = middle.replaceAllMapped(new RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), 
                                       (Match m) => '${m[1]},');
我的目标是:

计数器=1000

middle=“1000”

number=“1000”

我目前的解决方案会奏效吗?如果没有,如何更改代码以实现目标

更新: 这是我的密码:

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int counter = 0;

  void _incrementCounter() {
    setState(() {
      if (counter > 99999999) {
        //WinLandingPage();
      } else if (counter >= 99000000) {
        counter++;
      } else if (counter > 990000) {
        counter += 1000000;
      } else if (counter > 9900) {
        counter += 10000;
      } else if (counter > 99) {
        counter += 100;
      } else counter++;
    });
  }

    //BELOW is where the format is taking place, and I have no idea how to 
    //get this part working. This is my broken attempt. 

  var f = new NumberFormat("#,###,###,###", "en_US");
  var number = f.format(counter);

    //What am I doing wrong here?

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar (
        title: new Text(widget.title),
      ),
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new Text(
              'Try to get $number to 100,000,000.',
            ),
            new Text(
              '$number',
              style: Theme.of(context).textTheme.display1,
            ),
          ],
        ),
      ),
      floatingActionButton: new FloatingActionButton(
        onPressed: _incrementCounter,
        backgroundColor: Colors.pinkAccent,
        tooltip: 'Increment',
        child: new Icon(Icons.add),
      ),
    );
  }
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key,this.title}):超级(Key:Key);
最后的字符串标题;
@凌驾
_MyHomePageState createState()=>new_MyHomePageState();
}
类_MyHomePageState扩展状态{
int计数器=0;
void _incrementCounter(){
设置状态(){
如果(计数器>9999999){
//WinLandingPage();
}否则如果(计数器>=99000000){
计数器++;
}否则,如果(计数器>990000){
计数器+=1000000;
}否则,如果(计数器>9900){
计数器+=10000;
}否则,如果(计数器>99){
计数器+=100;
}else计数器++;
});
}
//下面是格式发生的地方,我不知道如何进行
//让这部分工作。这是我失败的尝试。
var f=新的数字格式(“#,#,#,#,#,#,#,#,#,#,#,#,#,#,#en#u US”);
var编号=f格式(计数器);
//我做错了什么?
@凌驾
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(widget.title),
),
正文:新中心(
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
新文本(
“尝试将$number设置为100000000。”,
),
新文本(
“$number”,
样式:Theme.of(context).textTheme.display1,
),
],
),
),
floatingActionButton:新的floatingActionButton(
按下时:\ u递增计数器,
背景颜色:Colors.pinkAccent,
工具提示:“增量”,
子:新图标(Icons.add),
),
);
}
}
我在这段代码中做错了什么?我对Dart非常不熟悉,但我正在尽我所能从你们的尝试、错误和支持中找出答案。

您可以使用软件包中的

README.md中的一个示例

var f = new NumberFormat("###.0#", "en_US");
  print(f.format(12.345));
    ==> 12.34 
你的例子可以是

var f = new NumberFormat("#,###", "en_US");
  print(f.format(1000));
    ==> 1,000 
您可以使用包中的

README.md中的一个示例

var f = new NumberFormat("###.0#", "en_US");
  print(f.format(12.345));
    ==> 12.34 
你的例子可以是

var f = new NumberFormat("#,###", "en_US");
  print(f.format(1000));
    ==> 1,000 

谢谢你的光临。我试图以这种方式显示代码,但我不确定如何使用此网站。您更新的问题的实际和预期结果是什么?问题的标题应该是“如何在Dart中设置数字格式?”,对于那些正在寻找如何将int转换为string的人来说:谢谢数据花园。我试图以这种方式显示代码,但我不确定如何使用此网站。您更新的问题的实际和预期结果是什么?问题的标题应该是“如何在Dart中设置数字格式?”,对于那些正在寻找如何将int转换为string的人来说:这非常有用,我非常感谢,然而,我不知道如何用我已有的代码实现它。谢谢你!如果我做对了,你需要像这样的
新文本('Try to get${f.format(counter)}to 100000000',),
也就是说,你必须在每次构建时调用格式化方法。这非常有用,我真的很感激,但是我不知道如何用我已有的代码实现它。谢谢你!如果我做对了,您需要这样的
新文本('Try to get${f.format(counter)}to 100000000',),
即,您必须在每个构建中调用格式方法。