flutter 将阿拉伯数字转换为英语数字&在 dart 中相反

wgx48brx  于 2022-12-27  发布在  Flutter
关注(0)|答案(2)|浏览(172)

我想用英语数字代替阿拉伯数字。
1-2-3-4-5-6-7-8-9〈==------

ldioqlga

ldioqlga1#

阿拉伯语译成英语

String replaceArabicNumber(String input) {
    const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
    const arabic = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];

    for (int i = 0; i < english.length; i++) {
      input = input.replaceAll(arabic[i], english[i]);
    }
    print("$input");
    return input;
  }

相反,用阿拉伯数字替换英语数字(English to Arabic

String replaceEnglishNumber(String input) {
    const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
    const arabic = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];

    for (int i = 0; i < english.length; i++) {
      input = input.replaceAll(english[i], arabic[i]);
    }
    print("$input");
    return input;
  }
ix0qys7i

ix0qys7i2#

0表示英语到阿拉伯语
1个用于阿拉伯语到英语
转换位数语言(“1-2-3-4-5-6-7-8-9”,0);=〉〉------

String convertDigitsLang(String input,int mode) {
  List<String> arabicNums = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
  RegExp regex = RegExp([r'[0-9]',r'[٠-٩]'][mode]);
  Set<String> matches =
      Set.from(regex.allMatches(input).map((e) => e.group(0).toString()));
  String replacment(String match)=>mode==1?arabicNums.indexOf(match).toString():arabicNums[int.parse(match)];
  matches.forEach((match)=>input=input.replaceAll(match,replacment(match)));
  return input;
}

相关问题