Java Reversedigit检查程序
我已经写了一个反向数字程序,但需要检查这个程序,看看它是否工作正常。我遗漏了什么if/else语句Java Reversedigit检查程序,java,Java,我已经写了一个反向数字程序,但需要检查这个程序,看看它是否工作正常。我遗漏了什么if/else语句 import java.util.*; public class IT145_Homework_7_3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // input int parameter System.o
import java.util.*;
public class IT145_Homework_7_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// input int parameter
System.out.print("Enter number to reverse: ");
//sets variables
int original = scanner.nextInt();
int reverse = 0;
int remainder;
//original number equals 542
while (original != 0) {
remainder = original % 10; //2 //4 //5
reverse = reverse * 10 + remainder; //2 //24 //245
original = original / 10; //54 //5 //0
}
//Prints out numbers in Reverse
System.out.println("Reverse of number is: " + reverse);
}
}
这里有一种方法可以进行检查,但在更改原始值之前,必须保留原始值的int。我把它称为原创
// sets variables
int original = scanner.nextInt();
int originalInt = original; // Save it off here
// all of your code to run the reverse...
// Code to run the check...
String revStr = String.valueOf(reverse);
String orgStr = String.valueOf(originalInt);
// In case you are inputting negative ints
orgStr = orgStr.replace("-", "");
revStr = revStr.replace("-", "");
// remove all trailing zeros from original and check if they are equal
// This is for the cases where the input is '900' and your reverse is '9'
orgStr = orgStr.replaceAll("0*$", "");
boolean worked = true;
// if the lengths are equal, then check if the chars match in opposite directions.
if (revStr.length() == orgStr.length())
{
int len = orgStr.length();
for (int i = 0; i < len; i++)
{
if (orgStr.charAt(i) != revStr.charAt(len - (i+1)))
{
worked = false;
break;
}
}
}
else
{
worked = false;
}
System.out.println("Worked: " + worked);
//设置变量
int original=scanner.nextInt();
int originalInt=original;//在这里省省吧
//你所有的代码运行反向。。。
//运行检查的代码。。。
String revStr=String.valueOf(反向);
String orgStr=String.valueOf(originalInt);
//如果您输入的是负整数
orgStr=orgStr.replace(“-”,”);
revStr=revStr.replace(“-”,”);
//从原始值中删除所有尾随零,并检查它们是否相等
//这适用于输入为'900'且反向为'9'的情况
orgStr=orgStr.replaceAll(“0*$”,“”);
布尔值=真;
//如果长度相等,则检查字符是否在相反方向匹配。
如果(revStr.length()==orgStr.length())
{
int len=orgStr.length();
对于(int i=0;i
编辑:第一个代码有bug。也可以按以下方式执行
int no=scanner.nextInt();
StringBuffer sb= new StringBuffer(no+"");
System.out.println(Integer.parseInt(new String(sb.reverse())));
首先,反转
900
的正确结果是什么<代码>9或009
?第二,什么是if-else语句?OP不是问如何反转int,而是问如何验证算法。