2012-03-30 179 views
49

如何将字符串转换为long。如何将字符串转换为long

为INT您

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

你怎么这么走另一条路,但长。

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

这是问题的一个副本:http://stackoverflow.com/a/2709269/108574 – 2012-03-30 06:33:55

回答

145

这是做到这一点的常用方法:

long l = Long.parseLong(str); 

还有这个方法:Long.valueOf(str);不同的是,parseLong返回原始long同时valueOf返回new Long()对象。

+0

谢谢。 我按照[链接]被卡在lg.getLong上(http://developer.android.com/reference/java/lang/Long.html#getLong(java.lang.String)) – John 2012-03-30 03:43:00

+0

'getLong'返回一个长从系统属性。这就是为什么它不能像你期望的那样工作。 – Cristian 2012-03-30 03:48:54

+0

假设输入字符串处于您期望的形式,很容易造成错误; “90.77”将会抛出ParseException。所以不要忽略ParseException,但是为你的用例处理它 – 2014-04-23 06:58:33

9

将字符串转换为long的方法是Long.parseLong。修改你的例子:

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

感谢您的时间。 – John 2012-03-30 03:43:59

+0

欢迎您。 – Lucifer 2012-03-30 03:52:05

3

您也可以尝试以下,

long lg; 
String Str = "1333073704000" 
lg = Long.parseLong(Str); 
+0

感谢您的时间。 – John 2012-03-30 03:43:42

4
String s = "1"; 

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

做到这一点:

long l = Long.parseLong(str); 

但是,请务必检查STR包含数字,以防止抛出异常。 例如:

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

会抛出一个异常,但这

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

不会。

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

这将处理null

NumberUtils.createLong(String) 
2

如果输入为String那么我建议你到字符串存储到double,然后转换到两倍长。

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

long b = Math.round(a); 
+0

你还可以添加为什么你认为这比简单地调用'parseLong()'更好吗? – 2016-04-04 22:17:51

1

使用parseLong(),例如:

long lg = lg.parseLong("123456789123456789"); 
+1

@Mogsdad谢谢兄弟,建议。它在评论中显得太怪异现在你真的很喜欢这个答案。 – 2016-04-19 01:08:19