dart - 如何在 Dart 中使用 char 类型? (打印字母表)

标签 dart

我正在努力学习 Dart language ,通过转换我学校提供的 C 编程练习。

我们 C 池中的第一个练习是编写一个函数 print_alphabet() 以小写形式打印字母表;禁止直接打印字母

在 POSIX C 中,直接的解决方案是:

#include <unistd.h>

void    print_alphabet(void)
{
    char    c;

    c = 'a';
    while (c <= 'z')
    {
        write(STDOUT_FILENO, &c, 1);
        c++;
    }
}

int     main(void)
{
    print_alphabet();
    return (0);
}

但是,据我所知,当前版本的 Dart (1.1.1) 没有一种处理字符的简单方法。我想出的最远的(对于我的第一个版本)是这样的:

void  print_alphabet()
{
  var c = "a".codeUnits.first;
  var i = 0;

  while (++i <= 26)
  {
    print(c.toString());
    c++;
  }
}

void main() {
  print_alphabet();
}

它打印每个字符的 ASCII 值,每行一个,作为一个字符串 ("97"... "122")。不是我想要的……

我正在尝试寻找一种合适的方法来做到这一点。但是缺少像 C 语言中那样的 char 类型让作为初学者的我有点吃力!

最佳答案

Dart 没有字符类型。

要将代码点转换为字符串,您可以使用 String 构造函数 String.fromCharCode:

int c = "a".codeUnitAt(0);
int end = "z".codeUnitAt(0);
while (c <= end) {
  print(String.fromCharCode(c));
  c++;
}

对于像这样的简单内容,如果您不介意换行,我会使用“print”而不是“stdout”。

还有:

int char_a = 'a'.codeUnitAt(0);
print(String.fromCharCodes(new Iterable.generate(26, (x) => char_a + x)));

或者,使用较新的列表文字语法:

int char_a = 'a'.codeUnitAt(0);
int char_z = 'z'.codeUnitAt(0);
print(String.fromCharCodes([for (var i = char_a; i <= char_z; i++) i]));

关于dart - 如何在 Dart 中使用 char 类型? (打印字母表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184271/

相关文章:

dart - 在 Polymer.dart 中处理跟踪事件

flutter - 在 Flutter 中将 base64 字符串转换为 PDF 文件

list - Flutter - 如何将 List<Uint8List> 放入共享首选项?

android - 在 Flutter 中更新 MaterialPageRoute 的状态

authorization - 使用 Dart 的 Google Plus API - 状态 401,授权问题

android - 运行flutter项目时如何修复 "Finished with error: Gradle task assembleDebug failed with exit code -1"错误

firebase - 如何使用 buildArguments 或其他任何东西在 Flutter/FirebaseAnimatedList 中查询? (请举例)

flutter - 我如何将字符串类型 "Timestamp(seconds=1621176915, nanoseconds=276147000)"转换为实际时间戳类型?

css - 如何在 flutter/dart 中使用设定大小的自定义字体?

DART: future 的语法 then