Come convertire / eseguire il cast lungo in String?


290

Ho appena creato l'app BB di esempio, che può consentire di scegliere la data.

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

Dopo aver scelto la data, devo convertire quel valore lungo in String, in modo da poter facilmente memorizzare il valore della data da qualche parte nel database. Sono nuovo nello sviluppo di Java e Blackberry.

long date = curDateFld.getDate();

Come devo convertire questo valore lungo in String? Inoltre voglio riconvertire a long da String. Penso che per quello che posso usare long l = Long.parseLong("myStr");?

Risposte:


393

Consulta la documentazione di riferimento per la classe String :String s = String.valueOf(date);

Se il tuo Long potrebbe essere nullo e non desideri ottenere una "null"stringa di 4 lettere , potresti usare Objects.toString, come:String s = Objects.toString(date, null);


MODIFICARE:

Lo inverti usando Long l = Long.valueOf(s);ma in questa direzione devi catturareNumberFormatException


13
Si noti che Long.valueOf(String)restituisce a Long. Se vuoi un long, usa Long.parseLong(String).
Daniel Hepper,

1
Qual è la differenza tra questo modo, o semplicemente concaticare in questo modo: ("" + longAttr)?
Marcelo Assis,

4
@MarceloAssis .. concat è circa 2x più lento. Se le prestazioni contano nella tua applicazione.
Hari Menon,

Bello, ma nota che java.util.Objectsè disponibile solo da Java 7.
Guillaume Husta,

1
Prima di Java 7, potresti anche usare Commons Lang's ObjectUtils.toString(Object,String)che è equivalente. -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Guillaume Husta,

207
String strLong = Long.toString(longNumber);

Semplice e funziona bene :-)


Per la conversione tipo generale di fuori del Datecontesto questa è la pratica consigliata per convertire Longa String.
KomodoDave,

3
Funziona bene con il tipo primitivo (lungo), ma può generare NPE con il tipo di oggetto (lungo), anche con l'autoboxing.
Guillaume Husta,

93

Long.toString()

Quanto segue dovrebbe funzionare:

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

1
C'è qualche differenza con String.valueOf(myLong)?
membri del

2
@membersound sono gli stessi. Fondamentalmente String.valueOf (long) chiama Long.toString ()
Nero

3
@Nero Non chiamerei lo stesso perché String.valueOf () restituirà "null" in caso di null, mentre Long.toString () causerà NullPointerException
Dhiresh Jain il

21

molto semplice, basta concatenare il lungo in una stringa.

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+"";

Può convertire il long in oggetto stringa, scorciatoia cool per la conversione in stringa ... ma String.valueOf(date);è consigliabile l' uso di


Ho pensato che String.valueOffosse l'approccio preferito ma ho notato che chiama solo Long.toStringquindi forse è il modo più semplice.
gMale

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

o

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

È buona norma su Stack Overflow aggiungere una spiegazione sul perché la soluzione dovrebbe funzionare. Per maggiori informazioni leggi Come rispondere .
Fabian Schultz,

1
Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post. - Dalla recensione
Krupal Shah

2
@KrupalShah Una risposta di solo codice potrebbe non essere buona, ma è comunque una risposta. Ti consiglierei questo post su LQPRQ: Stai sbagliando: un appello per la sanità mentale nella coda dei messaggi di bassa qualità
FelixSFD
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.