所以您正在尝试将英语格式的数字转换为波斯语,是吗?这个类为你提供了一堆有用的方法。
tv1.setText(Persian.persianalize(myText);
tv2.setText(Persian.persianalize(myNumber);
还有班级:
public class Persian {
private static String[] persianNumbers = new String[]{ "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹" };
public static String persianalize(String text, boolean zeroToText) {
if (text==null)
return "";
if (text.length() == 0) {
return "";
}
String out = "";
int length = text.length();
for (int i = 0; i < length; i++) {
char c = text.charAt(i);
if ('0' <= c && c <= '9') {
int number = Integer.parseInt(String.valueOf(c));
out += persianNumbers[number];
} else if (c == '٫') {
out += '،';
} else {
out += c;
}
}
if (zeroToText)
if (out!=null && out.equals("۰"))
return "صفر";
return out;
}
public static String convertNumberToEnglish(String num) {
if (num==null)
return "";
String d = num;
d = d.replace("۰", "0");
d = d.replace("۱", "1");
d = d.replace("۲", "2");
d = d.replace("٣", "3");
d = d.replace("٤", "4");
d = d.replace("۵", "5");
d = d.replace("٦", "6");
d = d.replace("٧", "7");
d = d.replace("۸", "8");
d = d.replace("۹", "9");
d = d.replace("،", ",");
return d;
}
public static String persianalize(long value, boolean zeroToText) {
return persianalize(String.valueOf(value), zeroToText);
}
public static String persianalize(long value) {
return persianalize(String.valueOf(value), false);
}
public static String persianalize(double value) {
return persianalize(String.valueOf(value), false);
}
public static String persianalize(String value) {
return persianalize(value, false);
}
}