我有一个字符串,想要整合它并将其数字转换成英文单词。例如,如果字符串为“I ran 12 miles
”,我想将“12
”转换为“OneTwo
”并返回“I ran OneTwo miles
”。我会感激任何帮助。
答案 0 :(得分:2)
我认为这是您正在寻找的方法:String.replaceAll。
答案 1 :(得分:1)
字符0 TO 9
的UTF-16代码单元位于48 and 57
之间,所以你需要做的是对你的字符串进行parcourire并检查代码是否在这两个数字之间,所以如果是用另一个String替换它,
这段代码可以帮助您:
public static void main(String[] args) {
String p = "I ran 12 miles";
String[] numbersC = {"Zero", "One", "Two", "Three", "Four", "Five",
"Six", "Seven", "Eight", "Nine"};
String newP = "";
int ci;
for (int i = 0; i < p.length(); i++) {
ci = (int) p.charAt(i);
if (ci >= 48 && ci <= 57) {
newP += numbersC[Character.getNumericValue(p.charAt(i))];
} else {
newP += p.charAt(i);
}
}
System.out.println(newP);
}
答案 2 :(得分:0)
使用此代码将数字转换为单词(它不能满足您的实际需要,但您应该自己尝试): -
public class NumberToWord
{
private static final String[] numNames = {
"zero",
" one",
" two",
" three",
" four",
" five",
" six",
" seven",
" eight",
" nine",
};
public String convert(int number) {
if (number == 0) { return "zero"; }
String prefix = "";
if (number < 0) {
number = -number;
prefix = "negative";
}
String current = "";
do {
int n = number % 10;
current = numNames[n] + current;
number /= 10;
} while (number > 0);
return (prefix + current).trim();
}
public static void main(String[] args) {
NumberToWord obj = new NumberToWord();
System.out.println("*** " + obj.convert(123456789));
System.out.println("*** " + obj.convert(-55));
}
}