用java实现整型反序

题目描述:给出一个不多于5位的整数,进行反序处理要求:1、求出它是几位数2、将数值以字符串形式输出,数字间以空格间隔,如果是负数,负号加在第一个数字之前,负号与数字之间不... 题目描述:给出一个不多于5位的整数, 进行反序处理
要求:
1、求出它是几位数
2、将数值以字符串形式输出,数字间以空格间隔,如果是负数,负号加在第一个数字之前,负号与数字之间不需要空格间隔
3、按逆序输出各位数字,例如原数为321,应输出123,-345应输出-543

样例输入:
12345

-12345

样例输出:
5
1 2 3 4 5
54321

5
-1 2 3 4 5
-54321
注意:如果是负数,负号加在第一个数字之前, 与数字没有空格间隔

实现类接口如下:

public class NumberInverse {

private int amount;
private String stringOutput;
private int inverseInt;

/*
输入:
Input: 位数不大于5的整数

注意:本程序主要实现逻辑放在构造函数中,处理结果分别放在成员变量amount、stringOutput、inverseInt。

输出:
amount: //存放数据是几位数
stringOutput: //将数值以字符串形式输出,数字间以空格间隔,如果是负数,负号加在第一个数字之前,负号与数字之间不需要空格间隔
inverseInt://按逆序输出各位数字,例如原数为321,应输出123,-345应输出-543
*/
public NumberInverse(int input)
{

}

public int getAmount() {
return amount;
}

public String getStringOutput() {
return stringOutput;
}

public int getInverseInt() {
return inverseInt;
}
}
展开
 我来答
秒杀腹黑菟
推荐于2017-09-03 · TA获得超过502个赞
知道小有建树答主
回答量:142
采纳率:100%
帮助的人:73.8万
展开全部
public class NumberInverse
{

    private int        amount;
    private String    stringOutput;
    private int        inverseInt;

    public NumberInverse(int input)
    {
        if (input > 99999 || input < -99999)
        {
            System.out.println("请输入一个小于5位的整数");
            return;
        }
        // 位数
        amount = Integer.toString(Math.abs(input)).length();
        // 空格显示
        for (char c : Integer.toString(Math.abs(input)).toCharArray())
        {
            if (stringOutput == null)
            {
                stringOutput = "";
            }
            stringOutput += String.format("%s%s", String.valueOf(c),
                " ");
        }
        stringOutput = input >= 0 ? stringOutput : String.format(
            "-%s", stringOutput);
        // 逆序
        String s = "";
        for (int i = this.getAmount() - 1; i >= 0; i--)
        {
            s += String.valueOf((Integer.toString(Math.abs(input))
                .toCharArray())[i]);
        }
        inverseInt = input >= 0 ? Integer.parseInt(s) : Integer
            .parseInt(String.format("-%s", s));
    }

    public int getAmount()
    {
        return amount;
    }

    public String getStringOutput()
    {
        return stringOutput;
    }

    public int getInverseInt()
    {
        return inverseInt;
    }

    /**
     * 测试
     * 
     * @param args
     */
    public static void main(String[] args)
    {
        NumberInverse n = new NumberInverse(-32345);
        System.out.println(n.getAmount());// 打印位数
        System.out.println(n.getStringOutput());// 打印格式化字符串
        System.out.println(n.getInverseInt());// 打印逆序的数字
    }
}
乄阿德
2013-11-29 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:134万
展开全部
public static void main(String[] args) {
NumberInverse ni = new NumberInverse(-956174);
System.out.println("amount is " + ni.getAmount());
System.out.println("stringOutput is " + ni.getStringOutput());
System.out.println("inverseInt is " + ni.getInverseInt());
}

public NumberInverse(int input) {
inverseInt = input;
String s = Integer.toString(inverseInt);
String inverseStr="";
if (s.indexOf("-") >= 0) {
amount = s.length() - 1;
stringOutput = "-";
for (int i = 1; i < s.length(); i++) {
stringOutput += s.charAt(i) + " ";
}
stringOutput = stringOutput.trim();
inverseStr="-";
for (int i = s.length()-1; i >0 ; i--) {
inverseStr += s.charAt(i);
}
inverseInt=Integer.parseInt(inverseStr);
} else {
amount = s.length();
stringOutput = "";
for (int i = 0; i < s.length(); i++) {
stringOutput += s.charAt(i) + " ";
}
stringOutput = stringOutput.trim();
inverseStr="";
for (int i = s.length()-1; i >=0 ; i--) {
inverseStr += s.charAt(i);
}
inverseInt=Integer.parseInt(inverseStr);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
净净的土
2013-11-29 · TA获得超过100个赞
知道答主
回答量:125
采纳率:25%
帮助的人:23.4万
展开全部
一个财富都木有,要写那么多代码,唉!!!
追问
哭啊 没财富用了
追答
public class NumberInverse
{
private int amount=0;
private String stringOutput="";
private int inverseInt=0;
public NumberInverse(int input)
{ //to get the amout
String str = input + "";
if ("-".equals(str.substring(0, 1)))
{
this.amount = (str.substring(1)).length();
} else
{
this.amount = str.length();
}
//to get the stringOutput
for(int i=0;i0;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(-11100);
System.out.println(test.getAmount());
System.out.println(test.getStringOutput());
System.out.println(test.getInverseInt());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mlc19860417
2013-11-29 · TA获得超过135个赞
知道答主
回答量:138
采纳率:0%
帮助的人:50.9万
展开全部
public NumberInverse(int input) {
StringBuffer sb = new StringBuffer();
int intTemp = input;
if(intTemp<0){
input = Math.abs(input);
}
char[] strInput = (input+"").toCharArray();
amount = strInput.length;
for(int i=strInput.length-1,j=0;j<=i;i--){
sb = sb.append(" ").append(strInput[i]);
}
stringOutput = (sb.toString()).trim();
inverseInt = Integer.parseInt(stringOutput.replaceAll(" ",""));
if(intTemp<0){
inverseInt= inverseInt*(-1);
stringOutput = "-"+stringOutput;
}
System.out.println(inverseInt);
System.out.println(stringOutput);
System.out.println(amount);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式