Integer 中几个进制转换的静态方法ParseInt ,toString,valueOf

Integer类的几个静态方法的理解-ParseInt ,toString,valueOf

1.Integer.ParesInt

static int ParesInt(String s)
static int ParesInt(String s,int radix)

public class test {
 public static void main(String[] args) {
 String n="10";
 
 //将字符串参数作为有符号位的十进制整数进行解析
 //实际上,相当于Integer.ParseInt(n,10)
 System.out.println(Integer.parseInt(n));
 
 //将字符串作为16进制的数,然后按照10进制进行转换
 /*
  *  parseInt("0", 10) 返回 0
 	parseInt("473", 10) 返回 473
 	parseInt("-0", 10) 返回 0
 	parseInt("-FF", 16) 返回 -255
 	parseInt("1100110", 2) 返回 102
 	parseInt("2147483647", 10) 返回 2147483647
 	parseInt("-2147483648", 10) 返回 -2147483648
 	parseInt("2147483648", 10) 抛出 NumberFormatException
 	parseInt("99", 8) 抛出 NumberFormatException
 	parseInt("Kona", 10) 抛出 NumberFormatException
 	parseInt("Kona", 27) 返回 411787

  */
 System.out.println(Integer.parseInt(n,16));
 
}
}

输出结果

10
16

2.toString

static String toString(int i,int radix)
static String toString(int i)

System.out.println("=======================================");	

//如果第一个参数为负,则结果中的第一个元素为 ASCII 的减号 '-' ('\u002D')。
//如果第一个参数为非负,则没有符号字符出现在结果中。 
//十六进制(基数为 16)的数字是 0123456789abcdef。如果希望得到大写字母,则可以在结果上调用 String.toUpperCase() 方法: 
//Integer.toString(n, 16).toUpperCase()


//将十进制的数转换成为第二个参数所指定的形式
	System.out.println(Integer.toString(-10,16));
	System.out.println(Integer.toString(10,16));
	System.out.println(Integer.toString(10, 2));
	System.out.println(Integer.toString(-10, 2));
	System.out.println(Integer.toString(-10, 8));
	System.out.println(Integer.toString(10, 8));

//返回一个表示指定整数的 String 对象。将该参数转换为有符号的十进制表示形式,
//以字符串形式返回它,就好像将参数和基数 10 作为参数赋予 toString(int, int) 方法。 
	System.out.println(Integer.toString(10));

输出

-a
a

1010
-1010

-12
12

10

3.toBinaryString,toHexString,toOctalString

static String toHexString(int i)
static String toOctalString(int i)
static String toBinaryString(int i)

	System.out.println("======================================");
	
	//以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 
	//如果参数为负,该无符号整数值为参数加上2^32^;否则等于该参数。将该值转换为二进制(基数 2)形式的无前导 0 的 ASCII 数字字符串。如果无符号数的大小为零,则用一个零字符 '0' (’\u0030’) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。字符 '0' ('\u0030') 和 '1' ('\u0031') 被用作二进制数字。
	
	System.out.println(Integer.toBinaryString(10));
	System.out.println(Integer.toBinaryString(-10));
	
	System.out.println(Integer.toHexString(10));
	System.out.println(Integer.toHexString(-10));
	
	System.out.println(Integer.toOctalString(10));
	System.out.println(Integer.toOctalString(-10));
}

输出

======================================
1010
11111111111111111111111111110110

a
fffffff6

12
37777777766

4.valueOf

static Integer valueOf(int i)
static Integer valueOf(String i)
static Integer valueOf(String i,int radix)

System.out.println("======================================");
	System.out.println(Integer.valueOf(10));
	System.out.println(Integer.valueOf("10"));
	
	//返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
	//将第一个参数解释为用第二个参数指定的基数表示的有符号整数,
	//就好像将这些参数赋予 parseInt(java.lang.String, int) 方法一样。结果是一个表示字符串指定的整数值的 Integer 对象。 
	System.out.println(Integer.valueOf("10",8));
	System.out.println(Integer.valueOf("10",16));
	System.out.println(Integer.valueOf("10",2));

输出
跟parseInt方法相同,只是返回的类型不同

======================================
10
10

8
16
2
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Integer.parseInt"和"Integer.valueOf"都是Java语言用于将字符串转换为整数的方法,但它们之间有一些细微的区别。 首先,两个方法的返回值不同。使用"Integer.parseInt"方法将字符串转换为int类型的基本数据类型,而"Integer.valueOf"方法将字符串转换为Integer类型的包装类对象。 其次,对于输入的字符串格式也有不同的要求。"Integer.parseInt"方法只能接受数字格式的字符串作为输入,如果输入的字符串不是合法的数字格式,将会抛出NumberFormatException异常。而"Integer.valueOf"方法可以接受一些特殊格式的字符串,比如"10"、"0x10"或者"-10"等。如果输入的字符串不能转换为整数,"Integer.valueOf"方法会返回一个NumberFormatException异常。 此外,两个方法对于处理null值的方式也有所不同。如果将null作为参数传递给"Integer.parseInt"方法,将会抛出NullPointerException异常。而"Integer.valueOf"方法将会返回一个值为null的Integer对象。 最后,两个方法在性能上也略有不同。"Integer.parseInt"方法的性能相对较好,因为它直接返回一个int类型的值。而"Integer.valueOf"方法的性能较差,因为它返回一个Integer对象,需要进行装箱操作。 综上所述,"Integer.parseInt"和"Integer.valueOf"虽然都可以实现将字符串转换为整数的功能,但在使用时需要根据具体的需求来选择使用哪个方法。 ### 回答2: parseInt()和valueOf()都是用于将字符串转换为整数的方法,但在使用上有一些细微的区别。 1. 返回类型不同: - parseInt()方法返回一个基本数据类型整数(int),不会返回Integer对象。 - valueOf()方法返回一个Integer对象。 2. 异常处理不同: - parseInt()方法在解析字符串时,如果无法识别为整数,则会抛出NumberFormatException异常。 - valueOf()方法在解析字符串时,如果无法识别为整数,则直接返回null,不会抛出异常。 3. 使用场景不同: - parseInt()方法常用于将字符串转换为整数后进行数值运算,因为返回的是基本数据类型,可以直接参与运算。 - valueOf()方法常用于需要以对象形式存储整数的场景,可以方便地进行对象之间的比较、执行方法等操作。 例如: ``` String str = "123"; int num = Integer.parseInt(str); System.out.println(num); // 输出:123 String str2 = "456"; Integer num2 = Integer.valueOf(str2); System.out.println(num2); // 输出:456 ``` 需要注意的是,当字符串无法解析为整数时,两个方法的处理方式不同: ``` String str3 = "abc"; int num3 = Integer.parseInt(str3); System.out.println(num3); // 抛出NumberFormatException异常 String str4 = "def"; Integer num4 = Integer.valueOf(str4); System.out.println(num4); // 输出:null ``` 综上所述,parseInt()和valueOf()方法在字符串转换为整数时有些许差异,根据具体场景需求选择使用。 ### 回答3: parseIntvalueOf都是用于将字符串转换为整数的方法。 parseInt是一个静态方法,它将接收一个字符串参数,并尝试将其解析为整数。它从字符串的开头开始解析,直到遇到非数字字符为止。如果字符串的开头是空格,空字符串或非数字字符,则parseInt将返回NaN(Not a Number)。 parseInt还可以接收一个可选的参数,称为基数,用于指定解析的进制,例如十六进制或八进制。 valueOf是一个实例方法,它可以在整数对象上调用。它将返回该整数对象的原始值,这个值是一个原始的数值类型,而不是一个对象。因此,valueOf方法将整数对象转换为对应的整数值。 总结起来,parseInt把字符串解析为整数并返回,而valueOf将整数对象转换为整数值并返回。两者的主要区别在于使用方式和返回值类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值