如何将 long 类型转换为 String?

321

我刚刚创建了一个示例BB应用程序,可以让用户选择日期。

DateField curDateFld = new DateField("Choose Date: ",
  System.currentTimeMillis(), DateField.DATE | DateField.FIELD_LEFT);
在选择日期之后,我需要将那个长整数值转换为字符串,这样我就可以轻松地将日期值存储在数据库中的某个位置。我是Java和Blackberry 开发的新手。
long date = curDateFld.getDate();

我该如何将这个长整型值转换为字符串?同时,我也想从字符串再次转换为长整型。 我认为我可以使用 long l = Long.parseLong("myStr"); 来实现这一点吗?

8个回答

410

查看String类的参考文档: String s = String.valueOf(date);

如果您的Long值可能为空,并且您不想获取一个4个字母的"null"字符串,您可以使用Objects.toString,例如: String s = Objects.toString(date, null);


编辑:

您可以使用Long l = Long.valueOf(s);将其反转,但在此方向上,您需要捕获NumberFormatException


14
请注意,Long.valueOf(String) 方法返回一个 Long 对象。如果你需要一个 long 类型的变量,请使用 Long.parseLong(String) 方法。 - Daniel Hepper
1
这种方式和像这样连接("" + longAttr)有什么区别? - Marcelo Assis
4
如果性能对您的应用程序很重要,那么concat大约比其他方法慢2倍。 - Hari Menon
不错,但请注意,“java.util.Objects”仅适用于Java 7及以上版本。 - Guillaume Husta
1
在Java 7之前,您还可以使用Commons Lang的ObjectUtils.toString(Object,String)方法,它是等效的。-> https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/ObjectUtils.html#toString(java.lang.Object, java.lang.String) - Guillaume Husta

232
String strLong = Long.toString(longNumber);

简单而且运作良好 :-)


对于Date上下文之外的一般类型转换,建议将Long转换为String - KomodoDave
3
原文:Works fine with primitive type (long), but may throw NPE with Object type (Long), even with autoboxing. 翻译:原始类型(long)的使用正常,但使用对象类型(Long)可能会抛出空指针异常(NPE),即使进行自动装箱也是如此。 - Guillaume Husta

108

Long.toString()

这应该可以工作:

long myLong = 1234567890123L;
String myString = Long.toString(myLong);

1
String.valueOf(myLong)myLong.toString() 有什么区别吗? - membersound
2
@membersound 它们是一样的。基本上,String.valueOf(long) 调用了 Long.toString()。 - Nero
6
@Nero,我不会说这两个方法是一样的,因为在输入为null时,String.valueOf()会返回"null",而Long.toString()会导致NullPointerException。 - Dhiresh Jain

20

很简单,只需将长整型数转换为字符串并连接即可。

long date = curDateFld.getDate(); 
String str = ""+date;

10

1.

long date = curDateFld.getDate();
//convert long to string
String str = String.valueOf(date);

//convert string to long
date = Long.valueOf(str);

2.

 //convert long to string just concat long with empty string
 String str = ""+date;
//convert string to long

date = Long.valueOf(str);

3
String logStringVal= date+"";

可以将长整型转换为字符串对象,这是一种很酷的快捷方式...但建议使用 String.valueOf(date);

我认为String.valueOf是首选方法,但我注意到它只是调用了Long.toString,所以也许这是更简单的方法。 - gMale

3

只需要这样做:

String strLong = Long.toString(longNumber);

2
String longString = new String(""+long);

或者

String longString = new Long(datelong).toString();

在 Stack Overflow 上,为什么你的解决方案有效的解释是一个好的实践。更多信息请阅读 如何回答 - Fabian Schultz
1
这并没有提供问题的答案。如果要批评或请求作者澄清,请在他们的帖子下留言。-【来自审查】 - Krupal Shah
2
@KrupalShah 仅提供代码的答案可能不是一个好答案,但它仍然是一个答案。我建议您阅读这篇关于LQPRQ的文章:You're doing it wrong: A plea for sanity in the Low Quality Posts queue - FelixSFD

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