将整数从0-10转换为对应于整数的英语单词

问题描述 投票:0回答:2

在此代码中,当输入中出现10时,它将打印一个零而不是打印十。我该如何解决这个问题。

class Program{
    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        String phrase = scn.nextLine();
        String[] digits = {"0","1","2","3","4","5","6","7","8","9","10"};
        String[] alphabets = {"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
        for(int i=0; i<digits.length; i++){
            phrase = phrase.replaceAll(digits[i],alphabets[i]+"");
        }
        System.out.println(phrase);
    }
}```
java string numbers integer
2个回答
0
投票

您的问题是您处理输入中的每个字符,可能没有空格,而不是用空格分隔的“单词”。

您可以通过执行String[] numbers = phrase.split(" ");将输入拆分为单词,然后创建一个新的返回字符串,并用相应的单词替换每个数字。

您可能还应该使用哈希图而不是两个数组。


0
投票

十是第一个“数字”,实际上是两个数字。您先更改零和一。首先更改十,以处理这种情况(或者您可以将其设为A而不是“ 10”-您似乎在这里以11为底)。

String[] digits = { "10", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
String[] alphabets = { "ten", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
© www.soinside.com 2019 - 2024. All rights reserved.