当前位置:编程学习 > JAVA >>

java 01000 输出时自动转换为8进制 希望是1000,

01000  输出时自动转换为8进制  希望是1000, 如何判断参数的整型数的进制

是通过程序判断,参数是整形,而不是字符

System.out.println(0100); 输出64  应该需要的是100

怎么破? --------------------编程问答--------------------

Integer.toOctalString(0100)
--------------------编程问答--------------------
System.out.println(Integer.toOctalString(0100));
--------------------编程问答-------------------- 如果要是希望System.out.println(0100); 输出0100  怎么做?
如果是System.out.println(0x100);输出0x100怎么做? --------------------编程问答--------------------
引用 3 楼 Test_LD 的回复:
如果要是希望System.out.println(0100); 输出0100  怎么做?
如果是System.out.println(0x100);输出0x100怎么做?


楼主,不引用大家,大家是看不到的。

java 控制台自动会把"0100"转成10进制的,楼主直接想在控制台输出么? --------------------编程问答--------------------
引用 4 楼 u011935764 的回复:
Quote: 引用 3 楼 Test_LD 的回复:

如果要是希望System.out.println(0100); 输出0100  怎么做?
如果是System.out.println(0x100);输出0x100怎么做?


楼主,不引用大家,大家是看不到的。

java 控制台自动会把"0100"转成10进制的,楼主直接想在控制台输出么?


是输出到控制台,要能判断出进制,不然可能0开头0x开头的整型输入造成非法输入 --------------------编程问答--------------------


引用 5 楼 Test_LD 的回复:
Quote: 引用 4 楼 u011935764 的回复:

Quote: 引用 3 楼 Test_LD 的回复:

如果要是希望System.out.println(0100); 输出0100  怎么做?
如果是System.out.println(0x100);输出0x100怎么做?


楼主,不引用大家,大家是看不到的。

java 控制台自动会把"0100"转成10进制的,楼主直接想在控制台输出么?


是输出到控制台,要能判断出进制,不然可能0开头0x开头的整型输入造成非法输入


楼主你好,输出到控制台是什么解释?
如果是只为了打印出来,为什么一定要Integer呢?在输出的时候直接转化为你要的格式String就好了。
int i=64; int i=0100; 对于i来说二进制的值是一致的。只是显示的方式不同。
在输出前,自己写一个formatter方法进行转换,然后再输出可以解决问题。不必要依赖System的方法。
希望楼主能够把用例写清楚,比如有个int i 想在控制台输出显示为8进制的。
--------------------编程问答-------------------- System.out.println(Integer.toOctalString(0100)); 
System.out.println(Integer.toHexString(0x100)); --------------------编程问答--------------------
引用 7 楼 fudongrifdr 的回复:
System.out.println(Integer.toOctalString(0100)); 
System.out.println(Integer.toHexString(0x100));

说一下具体问题:要通过convert(1234) 方法转换输出为壹仟贰佰叁拾肆,String convert(int arg)这是方法原型,如果convert(001000)或 convert(0x1234)为非法参数,要能判断出非法return null; --------------------编程问答-------------------- 你要接收的是int值啊,你传参之前先按我那样转换啊。参数非法,编译就出错了,何来return null; --------------------编程问答-------------------- 你试下00100,0x1234  这些是可以作为int类型参数的 --------------------编程问答--------------------
引用 9 楼 fudongrifdr 的回复:
你要接收的是int值啊,你传参之前先按我那样转换啊。参数非法,编译就出错了,何来return null;


引用 10 楼 Test_LD 的回复:
你试下00100,0x1234  这些是可以作为int类型参数的


如果我输入的是正常的十进制按照你那样也转换了,那岂不乱了 --------------------编程问答-------------------- 你输入正常的十进制就不需要转换了嘛,方法的调用者难道不知道要传什么样的参数? --------------------编程问答-------------------- 调用方法前你先判断,是不是0或者0x开头,分别先转了再传 --------------------编程问答-------------------- 输入的int 是不确定的 怎么判断是0,或0x开头的 --------------------编程问答-------------------- 不能当字符串接收?直接给他截了 --------------------编程问答--------------------
引用 8 楼 Test_LD 的回复:
Quote: 引用 7 楼 fudongrifdr 的回复:

System.out.println(Integer.toOctalString(0100)); 
System.out.println(Integer.toHexString(0x100));

说一下具体问题:要通过convert(1234) 方法转换输出为壹仟贰佰叁拾肆,String convert(int arg)这是方法原型,如果convert(001000)或 convert(0x1234)为非法参数,要能判断出非法return null;


非法参数,不用判断了,因为要不是Int的值,你传不进来。也就是说,在传之前编译出错。

还有,怎么输入的?像元首说的,当做String输入不行么。 --------------------编程问答-------------------- 其实你是不是不懂int和String表示的数字有什么区别? --------------------编程问答--------------------
引用 16 楼 u011935764 的回复:
Quote: 引用 8 楼 Test_LD 的回复:

Quote: 引用 7 楼 fudongrifdr 的回复:

System.out.println(Integer.toOctalString(0100)); 
System.out.println(Integer.toHexString(0x100));

说一下具体问题:要通过convert(1234) 方法转换输出为壹仟贰佰叁拾肆,String convert(int arg)这是方法原型,如果convert(001000)或 convert(0x1234)为非法参数,要能判断出非法return null;


非法参数,不用判断了,因为要不是Int的值,你传不进来。也就是说,在传之前编译出错。

还有,怎么输入的?像元首说的,当做String输入不行么。

convert(001000)或 convert(0x1234)为非法参数,是可以传的 --------------------编程问答--------------------
引用 17 楼 lcf 的回复:
其实你是不是不懂int和String表示的数字有什么区别?

没深究这区别 --------------------编程问答--------------------
引用 15 楼 fudongrifdr 的回复:
不能当字符串接收?直接给他截了


不可以convert(int arg)方法参数只能是int类型,这是题目给定限定的方法 --------------------编程问答-------------------- --------------------编程问答-------------------- 非要处理,先当字符串接收,再转成Int不会?真不知道你想干什么 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 23 楼 fudongrifdr 的回复:
0x100摆明了是个16进制,你非要当成10进制处理。。传的什么值,根本不是你这方法要考虑的问题,而是调用者该考虑的


先说下0100,0x100是int类型,不会报错,方法参数题目给的是int类型,是给定的方法,我要写的是方法里的代码,之后题目是由系统判定给分,系统会用一大堆实例去检测这个方法,如果要是自己写的方法我自然会传String类型,现在是题目限定了,是不可以去修改方法模型的 --------------------编程问答-------------------- 你非要在方法里对一个int型这么判断进制,我也想不出什么方法了 --------------------编程问答-------------------- 格式化输出一下就好了:

public class Main {

    public static void main(String[] args) {
        int a = 01000;
        int b = 0x1000;
        System.out.printf( "%o%n", a );
        System.out.printf( "%x%n", b );
    }
}

--------------------编程问答--------------------
引用 26 楼 bao110908 的回复:
格式化输出一下就好了:

public class Main {

    public static void main(String[] args) {
        int a = 01000;
        int b = 0x1000;
        System.out.printf( "%o%n", a );
        System.out.printf( "%x%n", b );
    }
}

现在是这样题目提供了String convert(int arg) 方法,参数arg只能是int类型,在方法内部要能判断出arg是否是非法输入像0或0x开头的输入就要判断出过滤掉,只能接受正常的正整数123,321,1000000,等,因为arg是要转换为大写的rmb值的,像123需要转换为"壹佰贰拾叁"输出,所以0,或0x开头的需要判断出屏蔽 --------------------编程问答--------------------
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,