我是一个 Java 新手。我想将字符串中特定位置的数字子串转换为英文单词。例如,给定字符串
我尝试使用以下代码,但它只返回了
ABC12345DEFG
和子串 substring(3,8)
,输出结果应为:ABConetwothreefourfiveDEF
我尝试使用以下代码,但它只返回了
ABCfiveDEFG
。您能帮我解决这个问题吗?String str = "ABC12345DEFG";
String newStr = "";
String words = {"zero", "one", "two", "three", "four", "five"};
for (char c:str.toCharArray()){
int i = (int)(c-'0');
for (int j=0; j<words.length; j++){
if (i==j){
newStr = str.replace(str.substring(3,8), words[j];
}
}
}
System.out.println(newStr);
words
数组中的每个元素替换12345
,当你想要用适当的单词替换单个数字时 - 所以你的逻辑从一开始就是错误的。也许使用StringBuilder
来存储结果,从str
中取出每个字符,检查它是否为数字,然后将结果附加到StringBuilder
中。 - MadProgrammer