这是一个作业问题
有没有一种方法可以在Java中不使用任何循环来反转数字?我能想到的唯一解决方案是使用String反转它,然后将其转换回整数。
答案 0 :(得分:1)
即使要通过将数字转换为String来反转数字,如果希望程序在具有不同大小的int时也能运行,则仍然需要循环。如果我要制作一种方法来反转数字,但无法使用循环来实现,那么我可能会使用递归(仍然间接使用循环)来实现。该代码将如下所示:
class Main {
public static void main(String[] args) {
String input = "1234"; // or scanner to take in input can be implemented
System.out.println(Integer.parseInt(reverseInt(input)));
}
public static String reverseInt(String x) {
if (x.length() == 1) {
return x;
} else {
return x.substring(x.length() - 1) + reverseInt(x.substring(0, x.length() - 1));
}
}
}
希望这会有所帮助!
答案 1 :(得分:1)
如果要使用任何循环来倒数,可以使用递归方法调用。以下程序也一样
public static void reverseMethod(int number) {
if (number < 10) {
System.out.println(number);
return;
} else {
System.out.print(number % 10);
reverseMethod(number / 10);
}
}
public static void main(String args[]) {
int num = 4567;
reverseMethod(num);
}
答案 2 :(得分:0)
使用reverse()
中的StringBuilder
:
int number = 1234;
String str = String.valueOf(number);
StringBuilder builder = new StringBuilder(str);
builder.reverse();
number = Integer.parseInt(builder.toString());
System.out.println(number);
将打印:
4321
答案 3 :(得分:0)
如果您想要没有循环和递归的反向方法,请使用此代码
int a=12345;
int b,c,d,e,f;
b=a%10;
c=a%100/10;
d=a%1000/100;
e=a%10000/1000;
f=a%100000/10000;
System.out.println(b+","+c+","+d+","+e+","+f);
答案 4 :(得分:0)
你可以这样:
public int reverse(int x) {
String o = "";
if (x < 0) {
x *= -1;
String s = Integer.toString(x);
o += "-";
o += new StringBuilder(s).reverse().toString();
}
else {
String s = Integer.toString(x);
o += new StringBuilder(s).reverse().toString();
}
try {
int out = Integer.parseInt(o);
//System.out.println(s);
return out; }
catch (NumberFormatException e) {
return 0;
}
}
答案 5 :(得分:0)
公共类测试员{
import argparse
main_parser = argparse.ArgumentParser()
subparsers = main_parser.add_subparsers(title='ACTIONs',
help='actions you can take')
a_parser = subparsers.add_parser('a',
help='Do action a')
b_parser = subparsers.add_parser('b',
help='Do action b')
}