我正在努力学习 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/