java 13-4 Integer和String、int之间的转换,进制转换

1、int类型和String类型的相互转换

  A、int -- String

    推荐用:

      public static String valueOf(int i) 返回 int 参数的字符串表示形式。

  B、String -- int

    推荐用:

      public static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析

 1 public class IntegerDemo {
 2 public static void main(String[] args) {
 3 // int -- String
 4 int number = 100;
 5 // 方式1 创建个空字符串再进行拼接
 6 String s1 = "" + number;
 7 System.out.println("s1:" + s1);
 8 // 方式2 public static String valueOf(int i) 返回 int 参数的字符串表示形式。 
 9 //不管number是什么类型,都可以转换成String类型,推荐用
10 String s2 = String.valueOf(number);
11 System.out.println("s2:" + s2);
12 // 方式3 
13 // int -- Integer -- String
14 Integer i = new Integer(number);
15 String s3 = i.toString();
16 System.out.println("s3:" + s3);
17 // 方式4
18 // public static String toString(int i)
19 String s4 = Integer.toString(number);
20 System.out.println("s4:" + s4);
21 System.out.println("-----------------");
22 
23 // String -- int
24 String s = "100";
25 // 方式1
26 // String -- Integer -- int
27 Integer ii = new Integer(s);
28 // public int intValue()
29 int x = ii.intValue();
30 System.out.println("x:" + x);
31 //方式2 public static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析
32 int y = Integer.parseInt(s);
33 System.out.println("y:"+y);
34 }
35 }

2、常用的基本进制转换

  1、public static String toBinaryString(int i)

  2、public static String toOctalString(int i)

  3、public static String toHexString(int i)

  A、十进制到其他进制

    推荐用这个:

      public static String toString(int i,int radix)

      由这个我们也看到了进制的范围:2-36

      为什么呢?0,...9,a...z 个数加起来就是36

  B、其他进制到十进制

      public static int parseInt(String s,int radix)

    注意:字符串里的字符必须能够组成后面进制,如("123",2)就不行,因为3超出了2进制的范围

 1 public class IntegerDemo {
 2 public static void main(String[] args) {
 3 // 十进制到二进制,八进制,十六进制
 4 System.out.println(Integer.toBinaryString(100));
 5 System.out.println(Integer.toOctalString(100));
 6 System.out.println(Integer.toHexString(100));
 7 System.out.println("-------------------------");
 8 
 9 // 十进制到其他进制 进制的范围:2-36
10 System.out.println(Integer.toString(100, 10));
11 System.out.println(Integer.toString(100, 2));
12 System.out.println(Integer.toString(100, 8));
13 System.out.println(Integer.toString(100, 16));
14 System.out.println(Integer.toString(100, 5));
15 System.out.println(Integer.toString(100, 7));
16 System.out.println(Integer.toString(100, -7));
17 System.out.println(Integer.toString(100, 70));
18 System.out.println(Integer.toString(100, 1));
19 System.out.println(Integer.toString(100, 17));
20 System.out.println(Integer.toString(100, 32));
21 System.out.println(Integer.toString(100, 37));
22 System.out.println(Integer.toString(100, 36));
23 System.out.println("-------------------------");
24 
25 //其他进制到十进制
26 System.out.println(Integer.parseInt("100", 10));
27 System.out.println(Integer.parseInt("100", 2));
28 System.out.println(Integer.parseInt("100", 8));
29 System.out.println(Integer.parseInt("100", 16));
30 System.out.println(Integer.parseInt("100", 23));
31 //NumberFormatException 因为3超出了2进制的范围
32 //System.out.println(Integer.parseInt("123", 2));
33 }
34 }