前不久写了个身份证校验的java代码,后来测试的时候发现含有字母的身份证字符串会报出异常,原因在于使用了Integer.parseInt(String str)方法,后来使用了Integer.valueOf(String str)方法,就显示正常了。
比如:"3101151985061P2210"
报如下异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "p"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at test.Test.main(Test.java:11)
原因:
Integer.parseInt(String str)返回一个基本类型(将字符串参数作为有符号的十进制整数进行分析)
Integer.valueOf (String str)返回一个对象(返回指定的 String 的值的 Integer 对象)
真惭愧自己曾经考出SCJP,长时间不写,很多东西都忘了,特此做下笔记来警记!
分享到:
相关推荐
* 使用 `Integer.valueOf()` 方法:`String str = "25"; int i = Integer.valueOf(str).intValue();` 字符串到浮点型 将字符串转换为浮点型可以使用以下方法: * 使用 `Double.parseDouble()` 方法:`String str ...
String str = String.valueOf(i); // 使用valueOf ``` - `toString`:将int类型转换为字符串。 - `valueOf`:创建一个包含整数值的String对象。 ##### Double转String 将双精度浮点数转换为字符串: ```java ...
`valueOf()` 方法与 `parseInt()` 类似,也是将字符串转换为整数,但当遇到无法转换的情况时,它会抛出相同的异常。两者的区别在于 `Integer.valueOf()` 可以用于缓存小范围(-128 到 127)内的整数值,提高性能。 ...
String s = String.valueOf(i); 2. 使用 Integer.toString() 方法 String s = Integer.toString(i); 3. 使用字符串连接符 String s = "" + i; 四、将 int 转换成 Integer 将 int 转换成 Integer 可以使用以下...
Java 提供了 `Integer.parseInt()` 或 `Integer.valueOf()` 方法。 ```java String str = "123"; int num = Integer.parseInt(str); System.out.println(num); // 输出:123 ``` 3. **JavaScript**: ...
b) 使用String.valueOf():此方法同样适用于所有基本类型,包括int,可以方便地将数值转换为字符串。 c) 运算符+:通过字符串与其他类型的运算符+结合,可以将int转换为字符串。例如: ```java int num = 123;...
除了`parseXxx`系列方法,Java还提供了另一种方式来实现字符串到数值的转换,即通过`Double.valueOf`和`Integer.valueOf`方法。 #### `Double.valueOf(String s)` `Double.valueOf`方法同样接收一个字符串参数,并...
- `String.valueOf(int i)`/`String.valueOf(double d)`:将整型/浮点型数值转换为字符串。 8. **字符串与对象的转换** - `toString()`:所有对象都有这个方法,用于将对象转换为字符串表示。 - `Object....
- `Integer.parseInt(String s)` / `Integer.valueOf(String s)`:将字符串转换为整数。 - `Double.parseDouble(String s)` / `Double.valueOf(String s)`:将字符串转换为浮点数。 ### 8. 正则表达式 `Pattern`和...
在Java中,`Integer.parseInt()` 和 `Integer.valueOf()` 方法默认将字符串转换为32位有符号整数。这意味着它们能够处理的范围是 `-2^31` 到 `2^31 - 1`,即 `-2147483648` 到 `2147483647`。因此,当试图将 `'...
标题提到的"Java String转int还有其它几种写法",描述中提到了两种常见方法:`Integer.valueOf()`和`Integer.parseInt()`。以下是这些方法的详细解释: 1. **`Integer.valueOf()`方法**: `Integer.valueOf()`是...
String s = String.valueOf(i); ``` 这种方法简洁明了,易于理解和使用。 2. **使用 `Integer.toString()` 方法** ```java int i = 123; String s = Integer.toString(i); ``` 该方法同样可以实现转换功能...
- **方法二**:`Integer.valueOf(String).intValue()` - **示例**: ```java String s = "12345"; int i = Integer.parseInt(s); // 或者 i = Integer.valueOf(s).intValue(); System.out.println(i); // 输出:...
在JavaScript中,`toString()`和`valueOf()`是两种常见的对象方法,它们的作用在于将对象转换成其他类型,尤其是在处理数据的表示和运算时。几乎所有的JavaScript数据类型(除了`null`)都支持这两个方法。 首先,`...
使用 `String.valueOf()` 方法可以实现这种转换,例如:`string str = String.valueOf(double);` 3. 字符串分割成数组 在 Java 中,可以使用 `split()` 方法将字符串分割成数组,例如:`string []str = new string...
- 使用 `String` 构造器或者 `String.valueOf(char[])` 方法。 - 示例代码: ```java char[] chars = {'H', 'e', 'l', 'l', 'o'}; String s = new String(chars); ``` 5. **字符串 --> 字节数组(编码)**: ...
String strI2 = String.valueOf(i); String strL2 = String.valueOf(l); String strF2 = String.valueOf(f); String strD2 = String.valueOf(d); ``` ##### 6. 字符串检索 - **从头开始检索**:`indexOf(String ...
在Java中,可以使用`Integer.parseInt()`或`Integer.valueOf()`方法: ```java public class Main { public static void main(String[] args) { String str = "123"; int num = Integer.parseInt(str); System....
return Integer.compare(Integer.parseInt(String.valueOf(c1)), Integer.parseInt(String.valueOf(c2))); } else if (Character.isDigit(c1) || Character.isDigit(c2)) { // 如果只有一个数字,数字在前 ...
int i = Integer.valueOf(str).intValue(); ``` - **使用`Integer.parseInt()`**:将字符串转换为整型。 ```java int i = Integer.parseInt(str); ``` ##### 4. 字符串到浮点型 - **使用`Double.valueOf()....