Java中将字符串String转换为 Long

培训教学 潘老师 8个月前 (09-08) 325 ℃ (0) 扫码查看

学会使用Java中的Long.parseLong(String)、Long.valueOf(String)方法和new Long(String)构造函数将字符串转换为Long类型。

String number = "2018"; //String
long value1 = Long.parseLong( number, 10 );
long value2 = Long.valueOf( number );
long value3 = new Long( number );

1.使用Long.valueOf(String)

Long.valueOf()方法将输入的字符串解析为带符号的十进制long类型。字符串中的字符必须都是十进制数字,除了第一个字符可以是负号(-)表示负数,也可以是正号(+)表示正数。

结果的long值与基数10中的字符串参数完全相同。在下面的示例中,我们将一个正数和一个负数转换为long值。

String positiveNumber = "+12001";
long value1 = Long.valueOf(positiveNumber);   //12001L
String negativeNumber = "-22002";
long value2 = Long.valueOf(negativeNumber);    //-22002L

如果字符串无法解析为long类型,它会抛出NumberFormatException异常。

Assertions.assertThrows(NumberFormatException.class, () -> {
  Long.valueOf("alexa");
});

2.使用Long.parseLong(String)

Long.parseLong(String)方法的规则与Long.valueOf(String)方法相似。

它将字符串参数解析为带符号的十进制长整型值。 字符串中的字符必须都是十进制数字,除了第一个字符可以是负号(-)表示负数,也可以是正号(+)表示正数。 结果的long值与基数10中的字符串参数完全相同。 再次,我们将使用parseLong() API将一个正数和一个负数转换为long值。

String positiveNumber = "+12001";
long value1 = Long.parseLong(positiveNumber);   //12001L
String negativeNumber = "-22002";
long value2 = Long.parseLong(negativeNumber);    //-22002L

如果输入的字符串属于另一个进制,那么我们可以将进制作为方法的第二个输入参数传递。

String numberInHex = "-FF";
// 将其按照十六进制解析
long value = Long.parseLong(numberInHex, 16);   //-255L

3.使用new Long(String)构造函数

另一种有用的方法是利用Long类的构造函数来创建新的long对象。自Java 9以来,该方法已被弃用,建议使用如上所述的parseLong() API。

long value = new Long("100");   //100L

4.NumberFormatException

使用任何给定的方法,如果输入的字符串除了第一个字符可以是加号或减号符号外,没有只包含十进制数字,我们将在运行时收到NumberFormatException错误。

String number = "12001xyz";
long value = Long.parseLong(number);
//抛出异常信息
Exception in thread "main" java.lang.NumberFormatException: For input string: "12001xyz"

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8904.html
喜欢 (1)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】