[英]Converting digits to words in a string in Java
我有一个字符串,想要集成它,然后将其数字转换为英文单词。 例如,如果字符串为“ I ran 12 miles
”,我想将“ 12
”转换为“ OneTwo
”并返回“ I ran OneTwo miles
”。 我将不胜感激。
我认为这是您要查找的方法: String.replaceAll 。
字符0 TO 9
的UTF-16代码单元在48 and 57
之间,因此您需要做的是检查字符串,并检查代码是否在这两个数字之间,因此,如果是,则将其替换为另一个字符串,
这段代码将帮助您:
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);
}
使用此代码将数字转换为单词(它不能满足您的实际需求,但是您应该自己尝试一下):-
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));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.