用Dart中的波斯语数字转换英语数字
我是新来的用Dart中的波斯语数字转换英语数字,dart,flutter,Dart,Flutter,我是新来的Dart和flatter 我想用波斯语数字代替英语数字。 如何实现这一点 1-2-3-4-5-6-7-8-9 ==> ۱-۲-۳-۴-۵-۶-۷-۸-۹ 例如: String replaceSinumber(字符串输入){ const english=['0','1','2','3','4','5','6','7','8','9']; const farsi=[“۰”、“۱”、“۳”、“۴”、“۵”、“۶”、“۷”、“۸”、“۹”]; for(int i=0;i } 不确定
Dart
和flatter
我想用波斯语数字代替英语数字。
如何实现这一点
1-2-3-4-5-6-7-8-9 ==> ۱-۲-۳-۴-۵-۶-۷-۸-۹
例如:
String replaceSinumber(字符串输入){
const english=['0','1','2','3','4','5','6','7','8','9'];
const farsi=[“۰”、“۱”、“۳”、“۴”、“۵”、“۶”、“۷”、“۸”、“۹”];
for(int i=0;i
}
不确定在什么环境下使用这些数字,但我更愿意定义一个常量映射:
const numberMap={0:'۰'、1:'۱'、2:'۲'、3:'۳'、4:'٤'、5:'۵'、6:'٦'、7:'۷'、8:'۸'、9:'۹'代码>
然后您可以调用numberMap[number]
以重用它。静态字符串convertDigitTolatin(字符串s){
static String ConvertDigitsToLatin(String s) {
var sb = new StringBuffer();
for (int i = 0; i < s.length; i++) {
switch (s[i]) {
//Persian digits
case '\u06f0':
sb.write('0');
break;
case '\u06f1':
sb.write('1');
break;
case '\u06f2':
sb.write('2');
break;
case '\u06f3':
sb.write('3');
break;
case '\u06f4':
sb.write('4');
break;
case '\u06f5':
sb.write('5');
break;
case '\u06f6':
sb.write('6');
break;
case '\u06f7':
sb.write('7');
break;
case '\u06f8':
sb.write('8');
break;
case '\u06f9':
sb.write('9');
break;
//Arabic digits
case '\u0660':
sb.write('0');
break;
case '\u0661':
sb.write('1');
break;
case '\u0662':
sb.write('2');
break;
case '\u0663':
sb.write('3');
break;
case '\u0664':
sb.write('4');
break;
case '\u0665':
sb.write('5');
break;
case '\u0666':
sb.write('6');
break;
case '\u0667':
sb.write('7');
break;
case '\u0668':
sb.write('8');
break;
case '\u0669':
sb.write('9');
break;
default:
sb.write(s[i]);
break;
}
}
return sb.toString();
}
var sb=新的StringBuffer();
对于(int i=0;i
我认为Map
必须用{}
来定义,而不是[]
啊,对不起,我的错。编辑,和我一起工作!