long.parselong() 和 valueof
时间: 2023-04-28 10:04:21 浏览: 657
long.parseLong() 和 valueOf 都是 Java 中用于将字符串转换为 long 类型的方法。
long.parseLong() 方法将字符串参数解析为有符号的十进制 long,返回解析后的 long 值。如果字符串不能被解析为 long 类型,则会抛出 NumberFormatException 异常。
valueOf 方法也将字符串参数解析为 long 类型,但是返回的是 Long 对象。如果字符串不能被解析为 long 类型,则会抛出 NumberFormatException 异常。
两者的区别在于返回值类型不同,一个是 long,一个是 Long 对象。在使用时需要根据具体情况选择使用哪个方法。
相关问题
long.parselong与long.valueof
long.parseLong和Long.valueOf都是用于将字符串转换为long类型的方法。它们的主要区别在于返回值的类型和异常处理方式。
long.parseLong方法的源代码如下:
```java
public static long parseLong(String s) throws NumberFormatException {
return parseLong(s, 10);
}
```
这个方法接受一个字符串参数,并将其解析为long类型的值。它默认使用十进制进行解析。如果字符串无法解析为有效的long值,将抛出NumberFormatException异常。
Long.valueOf方法的源代码如下:
```java
public static Long valueOf(String s) throws NumberFormatException {
return Long.valueOf(parseLong(s, 10));
}
```
这个方法也接受一个字符串参数,并将其解析为Long对象。它内部调用了parseLong方法,并将其返回结果作为参数传递给Long.valueOf方法。这个方法的返回值是一个Long对象,而不是基本类型long。同样,如果字符串无法解析为有效的long值,将抛出NumberFormatException异常。
所以,long.parseLong方法返回的是基本类型long,而Long.valueOf方法返回的是Long对象。在使用时,可以根据具体需求选择使用哪个方法。
#### 引用[.reference_title]
- *1* *2* *3* [Long.valueOf 与 Long.parseLong的区别](https://blog.csdn.net/muyimo/article/details/122861947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
java 中 Long.valueof() 与 Long.parseLong() 的区别
Java 中 Long.valueOf() 和 Long.parseLong() 方法都可以将字符串转换成 Long 类型的数值,但它们有以下区别:
1. 返回值类型不同:Long.valueOf() 方法返回 Long 对象,而 Long.parseLong() 方法返回基本数据类型 long。
2. 异常处理不同:当字符串无法转换成 Long 类型时,Long.valueOf() 方法会抛出 NumberFormatException 异常,而 Long.parseLong() 方法不会抛出异常,而是返回 0。
3. 对参数的要求不同:Long.valueOf() 方法的参数可以为 null,此时它会返回 null。而 Long.parseLong() 方法的参数不能为 null,否则会抛出 NullPointerException 异常。
具体地说,Long.valueOf() 方法会先调用 Long.decode() 方法将字符串转换成相应的 Long 类型数值。如果字符串以 0x 或 0X 开头,则按照十六进制解析;如果字符串以 0 开头,则按照八进制解析;否则按照十进制解析。如果字符串无法解析成 Long 类型,则抛出 NumberFormatException 异常。如果参数为 null,则返回 null。
而 Long.parseLong() 方法是直接将字符串按照十进制解析成 long 类型的数值。如果字符串无法解析成 long 类型,则返回 0。如果参数为 null,则抛出 NullPointerException 异常。
因此,在使用时,如果你希望能够处理异常,那么应该使用 Long.valueOf() 方法;如果你不需要处理异常,而且希望能够将 null 转换成 0,那么可以使用 Long.parseLong() 方法。
阅读全文