package huawei;
public class NumberInverse{
private int amount=0;
private String stringOutput="";
private int inverseInt=0;
public NumberInverse(int input) {
String str = input + "";
if ("-".equals(str.substring(0, 1)))
{
} else
{
this.amount = str.length();
}
for(int i=0;i<str.length();i++)
{
this.stringOutput+=str.charAt(i)+" ";
}
String temp="";
if ("-".equals(str.substring(0, 1)))
{
temp="-";
for(int i=str.length()-1;i>0;i--)
{
temp+=str.charAt(i);
}
}
else
{
for(int i=str.length()-1;i>=0;i--)
{
temp+=str.charAt(i);
}
}
this.inverseInt=Integer.parseInt(temp);
}
public int getAmount()
{
return amount;
}
public String getStringOutput()
{
return stringOutput;
}
public int getInverseInt()
{
return inverseInt;
}
public static void main(String[] args)
{
NumberInverse test = new NumberInverse(23456);
System.out.println(test.getAmount());
System.out.println(test.getStringOutput());
System.out.println(test.getInverseInt());
}
}
对啊 就是负数的时候不计算数字长度了 怎么该呢 求指导 谢谢啊
追答你在判断数字是正负的那里,负数的情况下你给空了,只写了是正数的情况下读取了数字的长度。在负数那里添加上获得数字长度不就行啦
追问先谢了 我加了this.amount = str.length()-1; 对了 可是测试还是不过 为什么呢 求帮忙看看哈
追答我测试没问题,正确输出结果。你的IDE和JDK的版本是多少啊?应该是软件的问题
追问额 我 再看看吧谢谢你了
是jdk-6u27-windows-i586的
没用额 当输入23456结果是5 2 3 4 5 6 654321
当输入-23456结果是0 -23456 -654321 是错误的计数应该是5 原程序改怎么该呢