java - 缅甸数字的算术运算
问题描述
用户输入缅甸数字(使用特殊软键盘)。然后,我需要增加那个数字。但是当我解析输入时, digitOne 变成了阿拉伯语。有什么办法可以保留缅甸吗?
String digitText= editText.getText().toString();
Integer digitOne = Integer.parseInt(digitText);
解决方案
我能找到的唯一解决方案是在算术运算后简单地音译它:
public static String getMyanmarDigitsText(@NonNull String numericStr) {
for (int j = 0; j < numericStr.length(); j++) {
String character = numericStr.substring(j, j + 1);
String replacement = MyUtils.getMyanmarDigitSymbol(character);
if (replacement != null) numericStr = numericStr.replace(character, replacement);
}
return numericStr;
}
public static String getEnglishDigitsText(@NonNull String numericStr) {
for (int j = 0; j < numericStr.length(); j++) {
String character = numericStr.substring(j, j + 1);
String replacement = MyUtils.getEnglishDigitSymbol(character);
if (replacement != null) numericStr = numericStr.replace(character, replacement);
}
return numericStr;
}
@Nullable
private static String getMyanmarDigitSymbol(String digit) {
switch (digit) {
case "0":
return "၀";
case "1":
return "၁";
case "2":
return "၂";
case "3":
return "၃";
case "4":
return "၄";
case "5":
return "၅";
case "6":
return "၆";
case "7":
return "၇";
case "8":
return "၈";
case "9":
return "၉";
default:
return null;
}
}
@Nullable
public static String getEnglishDigitSymbol(String digit) {
switch (digit) {
case "၀":
return "0";
case "၁":
return "1";
case "၂":
return "2";
case "၃":
return "3";
case "၄":
return "4";
case "၅":
return "5";
case "၆":
return "6";
case "၇":
return "7";
case "၈":
return "8";
case "၉":
return "9";
default:
return null;
}
}
public static boolean isMyanmarDigits(String numericStr) {
return numericStr.contains("၀")
|| numericStr.contains("၁")
|| numericStr.contains("၂")
|| numericStr.contains("၃")
|| numericStr.contains("၄")
|| numericStr.contains("၅")
|| numericStr.contains("၆")
|| numericStr.contains("၇")
|| numericStr.contains("၈")
|| numericStr.contains("၉");
}
public static boolean isEnglishDigits(String numericStr) {
return numericStr.contains("0")
|| numericStr.contains("1")
|| numericStr.contains("2")
|| numericStr.contains("3")
|| numericStr.contains("4")
|| numericStr.contains("5")
|| numericStr.contains("6")
|| numericStr.contains("7")
|| numericStr.contains("8")
|| numericStr.contains("9");
}f
推荐阅读
- python - 用于并行处理的 ThreadPool 和 Pool
- python - 无法在 Python 2.5 中创建组合框
- amazon-web-services - AWS 免费套餐的 12 个月期限究竟是如何计算的
- postgresql - 指定了太多列名
- javascript - 如何将用户重定向到 div 上的新页面单击 JQuery
- distributed-database - 如果 TiDB 的 leader 宕机了怎么办?TiDB 如何使用 Raft 来保证数据的安全性和一致性?
- angular - Kendo UI for Angular - 条形图固定条形大小
- android - 使用 addTextChangedListener() 从 TableLayout 内的多个 EditText 获取 getText
- rust - 我在哪里可以找到 Rust 目标规范格式的相应文档?
- java - Java 使用 Integer.parseInt 进行比较