You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发中如何去除Dart代码输出的自动换行?

Dart 控制台输出去除自动换行解决方案

问题根因

  • 现有代码的换行是因为print()方法默认会在每次调用结束后追加换行符,你在循环内每次打印单个字符,自然会每行输出一个数字
  • 原有代码中code.toString().split(",")的操作属于冗余逻辑,不需要将列表转字符串再拆分获取单个元素

解决实现

方案1:先拼接完整字符串再一次性输出(更简洁,无需额外导包)

直接将排序后的数字列表元素逐一转字符串后拼接,再套上[]统一打印即可,代码如下:

import 'dart:math';

void main(){
  List<int> code = [];
  while (true) {
    var Roomcode = Random().nextInt(10);
    code.add(Roomcode);
    if (code.length == 6) break;
  }
  code.sort();
  // 拼接所有数字为连续字符串
  String result = code.map((num) => num.toString()).join();
  // 一次性输出
  print('[$result]');
  
  setState(() {});
}

void setState(Null Function() param0) {
}

运行后输出格式即为你需要的[122377]样式。

方案2:循环内不换行输出(适用于需要逐字符输出的场景)

如果需要保留循环逐次输出的逻辑,可使用dart:io库的stdout.write()方法,该方法不会自动追加换行符:

import 'dart:math';
import 'dart:io';

void main(){
  List<int> code = [];
  while (true) {
    var Roomcode = Random().nextInt(10);
    code.add(Roomcode);
    if (code.length == 6) break;
  }
  code.sort();
  
  stdout.write('[');
  for(int i = 0; i < 6; i++){
    stdout.write(code[i].toString());
  }
  stdout.writeln(']'); // 最后输出一次换行结束当前行
  
  setState(() {});
}

void setState(Null Function() param0) {
}

内容的提问来源于stack exchange,提问作者Throw flutter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:27:04