我尝试从堆栈中获取一些帮助,并且我可以跨此Python代码
我想知道如何将其转换为 dart 并用它来获取序数
ordinal = lambda n: "%d%s" % (n,"tsnrhtdd"[(n//10%10!=1)*(n%10<4)*n%10::4])
Run Code Online (Sandbox Code Playgroud)
Jah*_*lam 15
尝试用这个
void main() {
for(int i =1; i<=100;i++){
print("$i${ordinal(i)}");
}
}
String ordinal(int number) {
if(!(number >= 1 && number <= 100)) {//here you change the range
throw Exception('Invalid number');
}
if(number >= 11 && number <= 13) {
return 'th';
}
switch(number % 10) {
case 1: return 'st';
case 2: return 'nd';
case 3: return 'rd';
default: return 'th';
}
}
Run Code Online (Sandbox Code Playgroud)
输出:第 1 个、2 个、3 个、4 个、5 个、6 个、7 个、8 个、9 个、10 个............
我使用本机平台库为此制作了一个包。
https://pub.dev/packages/ordinal_formatter
final ordinalString = await OrdinalFormatter().format(2) ?? '';
// -> 2nd
final localisedOrdinalString = await OrdinalFormatter().format(2, 'en_US') ?? '';
// -> 2nd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |