如何将字符串转换为长整型

68

如何将字符串转换为长整型。

对于int,您可以使用

int i = 3423;
String str;
str = str.valueOf(i);

那么如何使用 long 类型进行反向操作呢?

long lg;
String Str = "1333073704000"
lg = lg.valueOf(Str);

这是一个重复的问题:https://dev59.com/1nE85IYBdhLWcg3wkkfK#2709269 - He Shiming
8个回答

180

这是一种常见的方法:

long l = Long.parseLong(str);

还有一种方法:Long.valueOf(str);区别在于parseLong返回一个原始的long,而valueOf返回一个new Long()对象。


谢谢。我在使用lg.getLong时遇到了困难,参考链接:http://developer.android.com/reference/java/lang/Long.html#getLong(java.lang.String)。 - user1072357
getLong 从系统属性返回一个长整型数值。这就是为什么它不能按照你的期望工作的原因。 - Cristian
很容易犯下这样的错误,即假定输入字符串符合你期望的格式;例如,“90.77”将会抛出ParseException异常。因此不要忽略ParseException异常,而是根据你的用例进行处理。 - Alex Punnen

9

将字符串转换为长整型的方法是Long.parseLong。修改您的示例:

String s = "1333073704000";
long l = Long.parseLong(s);
// Now l = 1333073704000

6

如果您的输入是字符串,我建议您将字符串存储为double,然后将double转换为long。

String str = "123.45";
Double  a = Double.parseDouble(str);

long b = Math.round(a);

1
你能否解释一下为什么你认为这比直接调用 parseLong() 更好? - Debosmit Ray

5
String s = "1";

try {
   long l = Long.parseLong(s);       
} catch (NumberFormatException e) {
   System.out.println("NumberFormatException: " + e.getMessage());
}

2
使用 parseLong() 方法,例如:
long lg = lg.parseLong("123456789123456789");

2
import org.apache.commons.lang.math.NumberUtils;

这将处理null


这将处理空值。
NumberUtils.createLong(String)

2
您可以尝试以下方法:
long lg;
String Str = "1333073704000"
lg = Long.parseLong(Str);

1

Do this:

long l = Long.parseLong(str);

然而,始终要检查 str 是否包含数字以避免抛出异常。例如:

String str="ABCDE";
long l = Long.parseLong(str);

会抛出一个异常,但是这个

String str="1234567";
long l = Long.parseLong(str);

won't.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接