Como converter / converter long para String?

290

Acabei de criar um exemplo de aplicativo BB, que permite escolher a data.

DateField curDateFld = new DateField("Choose Date: ",
  System.currentTimeMillis(), DateField.DATE | DateField.FIELD_LEFT);

Depois de escolher a data, preciso converter esse valor longo em String, para poder armazenar facilmente o valor da data em algum lugar do banco de dados. Eu sou novo no desenvolvimento de Java e Blackberry.

long date = curDateFld.getDate();

Como devo converter esse valor longo em String? Também quero converter de volta para long a partir de String. Eu acho que posso usar long l = Long.parseLong("myStr");?

user225714
fonte

Respostas:

393

Consulte a documentação de referência para a classe String :String s = String.valueOf(date);

Se o seu Long pode ser nulo e você não deseja obter uma "null"sequência de quatro letras , use Objects.toString:String s = Objects.toString(date, null);


EDITAR:

Você o inverte usando, Long l = Long.valueOf(s);mas nessa direção, você precisa capturarNumberFormatException

Gregory Pakosz
fonte
13
Observe que Long.valueOf(String)retorna a Long. Se você quiser um long, use Long.parseLong(String).
precisa
1
Qual é a diferença entre este caminho, ou apenas concatue assim: ("" + longAttr)?
Marcelo Assis
4
@MarceloAssis .. concat é cerca de 2x mais lento. Se o desempenho importa em seu aplicativo.
Hari Menon
Bom, mas observe que java.util.Objectssó está disponível desde o Java 7. #
Guillaume Husta
1
Antes do Java 7, você também podia usar o Commons Lang, ObjectUtils.toString(Object,String)que é equivalente. -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Guillaume Husta
207
String strLong = Long.toString(longNumber);

Simples e funciona bem :-)

Fisu
fonte
Para a conversão geral fora o tipo de Datecontexto esta é a prática recomendada para converter Longpara String.
KomodoDave 6/09/12
3
Funciona bem com o tipo primitivo (longo), mas pode gerar NPE com o tipo de objeto (longo), mesmo com a caixa automática.
Guillaume Husta
93

Long.toString()

O seguinte deve funcionar:

long myLong = 1234567890123L;
String myString = Long.toString(myLong);
CONvid19
fonte
1
Existe alguma diferença String.valueOf(myLong)?
membersound
2
@membersound eles são os mesmos. Basicamente, String.valueOf (long) chama Long.toString ()
Nero
3
@Nero Eu não chamaria o mesmo, porque String.valueOf () retornará "null" em caso de null, enquanto Long.toString () fará com que NullPointerException
Dhiresh Jain
21

muito simples, basta concatenar o comprimento para uma string.

long date = curDateFld.getDate(); 
String str = ""+date;
MR.M
fonte
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);
iKushal
fonte
3
String logStringVal= date+"";

Pode converter o objeto longo em string, atalho legal para converter em string ... mas o uso de String.valueOf(date);é aconselhável

MBR
fonte
Eu pensei que String.valueOfera a abordagem preferida, mas notei que apenas chama, Long.toStringentão talvez essa seja a maneira mais simples.
precisa
2
String longString = new String(""+long);

ou

String longString = new Long(datelong).toString();
Nathan Meyer
fonte
É uma boa prática no Stack Overflow adicionar uma explicação sobre por que sua solução deve funcionar. Para mais informações, leia Como responder .
Fabian Schultz
1
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem. - Da avaliação
Krupal Shah
2
@KrupalShah Uma resposta apenas de código pode não ser boa, mas ainda é uma resposta. Eu recomendo que você este post sobre o LQPRQ: Você está fazendo errado: Um apelo à sanidade na fila de baixa posts de qualidade
FelixSFD