我的反向方法不会逆转任何东西?



这是我的代码:

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);
}
}

}

如果使用条件lastdigital>10比它是做简单的程序

相关内容