程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我的反向方法没有反向任何东西?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我的反向方法没有反向任何东西??

开发过程中遇到我的反向方法没有反向任何东西?的问题如何解决?下面主要结合日常开发的经验,给出你关于我的反向方法没有反向任何东西?的解决方法建议,希望对你解决我的反向方法没有反向任何东西?有所启发或帮助;

这是我的代码:

public static void numberToWords(int number){
    int lastDigit;

    if(number < 0){
        System.out.println("InvalID Value");
    }
    while(number != 0) {
        lastDigit = number % 10; // lastDigit = 3
        number = number / 10;
        reverse(number);

        if (lastDigit == 0) {
            System.out.println("ZERO");
        }
        if (lastDigit == 1) {
            System.out.println("ONE");
        }
        if (lastDigit == 2) {
            System.out.println("TWO");
        }
        if (lastDigit == 3) {
            System.out.println("THREE");
        }
        if (lastDigit == 4) {
            System.out.println("FOUR");
        }
        if (lastDigit == 5) {
            System.out.println("FIVE");
        }
        if (lastDigit == 6) {
            System.out.println("SIX");
        }
        if (lastDigit == 7) {
            System.out.println("SEVEN");
        }
        if (lastDigit == 8) {
            System.out.println("EIGHT");
        }
        if (lastDigit == 9) {
            System.out.println("NINE");
        }
    }
}

public static voID reverse(int a){
    int finalDigit = 0;
    int reverse1 = 0;

    while(a > 0) {
        finalDigit = a % 10;
        reverse1 = reverse1 * 10 + finalDigit;
        a = a / 10;
    }
}

我的数字根据需要打印为字符串,但它们的顺序相反。

我尝试在转换方法中加入反向方法,但结果总是一样,不知道如何反向。

解决方法

  1. 删除所有 if 语句,使用 Array 存储数字到单词的关联(数字 = 数组索引,字符串 = 数组值)
  2. 从右到左查找每个数字,构建所有数字单词的列表
  3. 反转它
  4. 对列表做任何你想做的事情(即将它加入一个字符串)
class NumTest {
    
    private static final String[] digits = {
        "ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE"
    };
    
    private String numAsString(int num) {
        List<String> lDigs = new ArrayList<>();
        while (num > 0) {
            String dig = digits[num % 10];
            lDigs.add(dig);
            num /= 10;
        }
        Collections.reverse(lDigs);
        return lDigs.stream().collect(Collectors.joining(" "));
    }
    
    @Test
    public void testNumAsString() {
        Map<Integer,String> nums = new LinkedHashMap<>();
        //nums.put(0,"ZERO"); <- will return empty String
        nums.put(1,"ONE");
        nums.put(24,"TWO FOUR");
        nums.put(2567,"TWO FIVE SIX SEVEN");
        nums.put(90000,"NINE ZERO ZERO ZERO ZERO");
        nums.put((int) 1.56e6,"ONE FIVE SIX ZERO ZERO ZERO ZERO");
        
        for (Entry<Integer,String> test: nums.entrySet()) {
            String res = numAsString(test.getKey());
            System.out.println(String.format("%d -> %s",test.getKey(),res));
            assertEquals(test.getValue(),res);
        }
    }
    
}

大佬总结

以上是大佬教程为你收集整理的我的反向方法没有反向任何东西?全部内容,希望文章能够帮你解决我的反向方法没有反向任何东西?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。