You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart 中阿拉伯数字与英文数字互相转换及替换的实现方法

Dart 实现 ASCII 数字与阿拉伯语数字双向转换方案

首先明确对应关系:你提到的1-2-3-4-5-6-7-8-9 与 ١-٢-٣-٤-٥-٦-٧-٨-٩ 匹配,以下实现默认包含0的转换(不需要可直接删除映射表中0的对应项)。


1. 核心映射定义

先定义双向映射表,后续所有转换逻辑都基于该表实现:

// ASCII数字(即你所说的英文数字)转阿拉伯语数字的映射
const asciiToArabicMap = {
  '0': '٠',
  '1': '١',
  '2': '٢',
  '3': '٣',
  '4': '٤',
  '5': '٥',
  '6': '٦',
  '7': '٧',
  '8': '٨',
  '9': '٩',
};

// 阿拉伯语数字转ASCII数字的映射
const arabicToAsciiMap = {
  '٠': '0',
  '١': '1',
  '٢': '2',
  '٣': '3',
  '٤': '4',
  '٥': '5',
  '٦': '6',
  '٧': '7',
  '٨': '8',
  '٩': '9',
};

2. 单字符转换

实现单个字符的精准转换,非数字字符会直接返回原内容,不会报错:

/// 单个ASCII数字字符转阿拉伯语数字
String convertAsciiDigitToArabic(String char) {
  return asciiToArabicMap[char] ?? char;
}

/// 单个阿拉伯语数字字符转ASCII数字
String convertArabicDigitToAscii(String char) {
  return arabicToAsciiMap[char] ?? char;
}

3. 全字符串批量替换

如果需要转换整个字符串中所有匹配的数字,直接调用以下方法即可,非数字内容会原样保留:

/// 替换字符串中所有ASCII数字为阿拉伯语数字
String replaceAsciiDigitsToArabic(String input) {
  return input.split('').map(convertAsciiDigitToArabic).join();
}

/// 替换字符串中所有阿拉伯语数字为ASCII数字
String replaceArabicDigitsToAscii(String input) {
  return input.split('').map(convertArabicDigitToAscii).join();
}

4. 用法示例

void main() {
  // ASCII转阿拉伯语数字示例
  const testStr1 = "Order No: 123456789";
  final converted1 = replaceAsciiDigitsToArabic(testStr1);
  print(converted1); // 输出:Order No: ١٢٣٤٥٦٧٨٩

  // 阿拉伯语数字转ASCII示例
  const testStr2 = "الرقم هو ٩٨٧٦٥٤٣٢١";
  final converted2 = replaceArabicDigitsToAscii(testStr2);
  print(converted2); // 输出:الرقم هو 987654321
}

5. 高性能优化方案

如果需要处理超长字符串,推荐用正则替换替代逐字符遍历,运行效率更高:

// 正则版本ASCII转阿拉伯语数字
String replaceAsciiDigitsToArabicRegExp(String input) {
  return input.replaceAllMapped(RegExp(r'[0-9]'), (match) => asciiToArabicMap[match.group(0)]!);
}

// 正则版本阿拉伯语转ASCII数字
String replaceArabicDigitsToAsciiRegExp(String input) {
  return input.replaceAllMapped(RegExp(r'[٠-٩]'), (match) => arabicToAsciiMap[match.group(0)]!);
}

内容的提问来源于stack exchange,提问作者Abdelrahman Tareq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:54:05