将字符串中的英文数字转换为阿拉伯数字
Convert English numbers in a String to Arabic numbers
我有多个不同格式的字符串需要在某些 TextView 中显示。我无法控制这些字符串的长度或格式。他们可以只包含数字、纯文本或两者的组合。
我的目标是在一些 TextView 中显示字符串,并在此过程中将任何英文数字转换为阿拉伯数字。
下面的例子应该可以阐明我的意思:
original string >> converted string
=====================================
test 123 >> test ١٢٣
test >> test
123 >> ١٢٣
我是这样开始的:
txtView.setText(String.format(locale, "%d", fulltext));
但这假设您的 fulltext
字符串中只有数字。
你能建议如何解决这个问题吗?
假设您的全文字符串是这样的
String fulltext = "1a2b3c";
将所有数字的实例替换为相应的阿拉伯数字
fulltext = fulltext.replace("1","١").replace("2","٢").replace("3","٣");
等希望这就是你的意思
如果您想以波斯语或阿拉伯语格式查看您的电话号码,则必须使用波斯语或阿拉伯语字体。使用 android studio 的默认字体,您可以看到它们的英文格式。所以这样做:
1.去这个地址
文件\新建\文件夹\资产文件夹
您可以创建一个名为 fonts 的文件夹
2. 对于你想要更改字体的 textview 或 edittext 应该这样做
字体face=Typeface.createformatassest(getassest(),"fonts/BZAR.TTF");
Textview.settypeface(脸);
Fonts 是我在资产文件夹中的文件夹。
如果您使用波斯语或阿拉伯语字体,您的数字格式将变为阿拉伯语格式。
String val="123";char[] arabicChars = {'٠','١','٢','٣','٤','٥','٦','٧','٨','٩'};
StringBuilder builder = new StringBuilder();
for(int i =0;i<val.length();i++){
if(Character.isDigit(val.charAt(i))){
builder.append(arabicChars[(int)(val.charAt(i))-48]);
}
else{
builder.append(val.charAt(i));
}
}
system.out.println(""+builder.toString());
你可以使用这个:(ES6)
export const eArabic = (text) => {
let newString = "";
const arabicChars = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
[...`${text}`].map(item => {
if (!isNaN(parseInt(item))) {
newString += arabicChars[parseInt(item)];
} else {
newString += item;
}
});
return newString;
};
我有多个不同格式的字符串需要在某些 TextView 中显示。我无法控制这些字符串的长度或格式。他们可以只包含数字、纯文本或两者的组合。
我的目标是在一些 TextView 中显示字符串,并在此过程中将任何英文数字转换为阿拉伯数字。
下面的例子应该可以阐明我的意思:
original string >> converted string
=====================================
test 123 >> test ١٢٣
test >> test
123 >> ١٢٣
我是这样开始的:
txtView.setText(String.format(locale, "%d", fulltext));
但这假设您的 fulltext
字符串中只有数字。
你能建议如何解决这个问题吗?
假设您的全文字符串是这样的
String fulltext = "1a2b3c";
将所有数字的实例替换为相应的阿拉伯数字
fulltext = fulltext.replace("1","١").replace("2","٢").replace("3","٣");
等希望这就是你的意思
如果您想以波斯语或阿拉伯语格式查看您的电话号码,则必须使用波斯语或阿拉伯语字体。使用 android studio 的默认字体,您可以看到它们的英文格式。所以这样做: 1.去这个地址 文件\新建\文件夹\资产文件夹 您可以创建一个名为 fonts 的文件夹 2. 对于你想要更改字体的 textview 或 edittext 应该这样做
字体face=Typeface.createformatassest(getassest(),"fonts/BZAR.TTF"); Textview.settypeface(脸);
Fonts 是我在资产文件夹中的文件夹。
如果您使用波斯语或阿拉伯语字体,您的数字格式将变为阿拉伯语格式。
String val="123";char[] arabicChars = {'٠','١','٢','٣','٤','٥','٦','٧','٨','٩'};
StringBuilder builder = new StringBuilder();
for(int i =0;i<val.length();i++){
if(Character.isDigit(val.charAt(i))){
builder.append(arabicChars[(int)(val.charAt(i))-48]);
}
else{
builder.append(val.charAt(i));
}
}
system.out.println(""+builder.toString());
你可以使用这个:(ES6)
export const eArabic = (text) => {
let newString = "";
const arabicChars = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
[...`${text}`].map(item => {
if (!isNaN(parseInt(item))) {
newString += arabicChars[parseInt(item)];
} else {
newString += item;
}
});
return newString;
};