在Java中将String转换为另一个语言环境

嗨,
我需要将阿拉伯/波斯数字转换为等于英语的数字(例如,将“ ۲”转换为“ 2”),该
怎么办?

谢谢


慕桂英3389331
浏览 360回答 3
3回答

HUX布斯

我建议您有一个十位数的查找字符串,并一次替换所有的位数。public static void main(String... args) {&nbsp; &nbsp; System.out.println(arabicToDecimal("۴۲"));}private static final String arabic = "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9";private static String arabicToDecimal(String number) {&nbsp; &nbsp; char[] chars = new char[number.length()];&nbsp; &nbsp; for(int i=0;i<number.length();i++) {&nbsp; &nbsp; &nbsp; &nbsp; char ch = number.charAt(i);&nbsp; &nbsp; &nbsp; &nbsp; if (ch >= 0x0660 && ch <= 0x0669)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch -= 0x0660 - '0';&nbsp; &nbsp; &nbsp; &nbsp; else if (ch >= 0x06f0 && ch <= 0x06F9)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch -= 0x06f0 - '0';&nbsp; &nbsp; &nbsp; &nbsp; chars[i] = ch;&nbsp; &nbsp; }&nbsp; &nbsp; return new String(chars);}版画42使用字符串作为查询的原因是其他字符如原样. - ,保留。实际上,十进制数将保持不变。

一只甜甜圈

我java.math.BigDecimal是按班级完成的,下面是代码段String arabicNumerals = "۴۲۴۲.۴۲";String englishNumerals = new BigDecimal(arabic).toString();System.out.println("Number In Arabic : "+arabicNumerals);System.out.println("Number In English : "+englishNumerals);结果Number In Arabic : ۴۲۴۲.۴۲Number In English : 4242.42注意:如果arabicNumerals中没有数字以外的其他字符,则上述代码将不起作用,例如:۴,۲۴۲.۴۲将得到java.lang.NumberFormatException,因此您可以使用Character.isDigit(char ch)其他逻辑删除其他字符并使用上述代码。所有正常情况下都能正常工作!美好的一天

芜湖不芜

我发现了一种更简单,更快捷的方法,其中也包括两个阿拉伯代码页。public static String convertToEnglishDigits(String value){&nbsp; &nbsp; &nbsp;String newValue = value.replace("١", "1").replace("٢", "2").replace("٣", "3").replace("٤", "4").replace("٥", "5")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.replace("٦", "6").replace("7", "٧").replace("٨", "8").replace("٩", "9").replace("٠", "0")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.replace("۱", "1").replace("۲", "2").replace("۳", "3").replace("۴", "4").replace("۵", "5")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.replace("۶", "6").replace("۷", "7").replace("۸", "8").replace("۹", "9").replace("۰", "0");&nbsp; &nbsp; &nbsp;return newValue;}如果您更改替换来源,它将以英文格式返回数字,反之亦然。(“ ۰”,“ 0”)到(“ 0”,“ ۰”)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java