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

时间:2023-11-28 13:08:32

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

  A、int -- String
    推荐用:
      public static String valueOf(int i) 返回 int 参数的字符串表示形式。

  B、String -- int
    推荐用:
      public static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析

 public class IntegerDemo {
public static void main(String[] args) {
// int -- String
int number = 100;
// 方式1 创建个空字符串再进行拼接
String s1 = "" + number;
System.out.println("s1:" + s1);
// 方式2 public static String valueOf(int i) 返回 int 参数的字符串表示形式。
//不管number是什么类型,都可以转换成String类型,推荐用
String s2 = String.valueOf(number);
System.out.println("s2:" + s2);
// 方式3
// int -- Integer -- String
Integer i = new Integer(number);
String s3 = i.toString();
System.out.println("s3:" + s3);
// 方式4
// public static String toString(int i)
String s4 = Integer.toString(number);
System.out.println("s4:" + s4);
System.out.println("-----------------"); // String -- int
String s = "100";
// 方式1
// String -- Integer -- int
Integer ii = new Integer(s);
// public int intValue()
int x = ii.intValue();
System.out.println("x:" + x);
//方式2 public static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析
int y = Integer.parseInt(s);
System.out.println("y:"+y);
}
}

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进制的范围

 public class IntegerDemo {
public static void main(String[] args) {
// 十进制到二进制,八进制,十六进制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------"); // 十进制到其他进制 进制的范围:2-36
System.out.println(Integer.toString(100, 10));
System.out.println(Integer.toString(100, 2));
System.out.println(Integer.toString(100, 8));
System.out.println(Integer.toString(100, 16));
System.out.println(Integer.toString(100, 5));
System.out.println(Integer.toString(100, 7));
System.out.println(Integer.toString(100, -7));
System.out.println(Integer.toString(100, 70));
System.out.println(Integer.toString(100, 1));
System.out.println(Integer.toString(100, 17));
System.out.println(Integer.toString(100, 32));
System.out.println(Integer.toString(100, 37));
System.out.println(Integer.toString(100, 36));
System.out.println("-------------------------"); //其他进制到十进制
System.out.println(Integer.parseInt("100", 10));
System.out.println(Integer.parseInt("100", 2));
System.out.println(Integer.parseInt("100", 8));
System.out.println(Integer.parseInt("100", 16));
System.out.println(Integer.parseInt("100", 23));
//NumberFormatException 因为3超出了2进制的范围
//System.out.println(Integer.parseInt("123", 2));
}
}