我要反转输入的号码。我已经为它编写了代码。但我需要知道它是否可以以任何其他更快的方式完成。请随时修改我的代码。
public static void main()throws IOException
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter a number");
int num=Integer.parseInt(in.readLine());
int no=num;
int d;
int rev_no=0;
int digits=0;
while(num>0)
{
num/=10;
digits++;
}
while(no>0)
{
d=no%10;
rev_no+=d*(Math.pow(10,(digits-1)));
no/=10;
digits--;
}
System.out.println(rev_no);
}
答案 0 :(得分:1)
正如@Christian在评论中提到的那样,你可以这样做:
int originalInt = 123456789;
String str = new StringBuilder(Integer.toString(originalInt)).reverse().toString();
int reversedInt = Integer.parseInt(str);
或者作为一个单行:
Integer.parseInt(new StringBuilder(Integer.toString(new Integer(123456789))).reverse().toString());
修改强>
要回答@Luiggi Mendoza的担忧 - 支持数字太大而无法容纳整数可以使用BigInteger完成,如下所示:
BigInteger originalValue = BigInteger.valueOf(563463346233535772l);
String reversedString = new StringBuilder(originalValue.toString()).reverse().toString();
答案 1 :(得分:0)
String myNum=num.toString();
String reversed = new StringBuffer(myNum).reverse().toString();
num=Integer.parseInt(reversed);
答案 2 :(得分:0)
没有StringBuilder的示例。
private static long revert(long number){
String numberAsString = String.valueOf(number);
String[] splitted = numberAsString.split("");
String returnString = "";
for(int i = splitted.length-1; i >=0; i--){
returnString += splitted[i];
}
return Integer.valueOf(returnString);
}