如何在flutter中获取序数

oce*_*nta 8 dart flutter

我尝试从堆栈中获取一些帮助,并且我可以跨此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 个............


Zso*_*jki 0

我使用本机平台库为此制作了一个包。

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)