Jak przekonwertować / rzutować długo na ciąg?

290

Właśnie stworzyłem przykładową aplikację BB, która pozwala wybrać datę.

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

Po wybraniu daty muszę przekonwertować tę długą wartość na String, aby móc łatwo przechowywać wartość daty w bazie danych. Jestem nowy w rozwoju Java i Blackberry.

long date = curDateFld.getDate();

Jak przekonwertować tę długą wartość na String? Również chcę przekonwertować z powrotem na Long z String. Myślę, że do tego mogę użyć long l = Long.parseLong("myStr");?

użytkownik225714
źródło

Odpowiedzi:

393

Zobacz dokumentację referencyjną dla klasy String :String s = String.valueOf(date);

Jeśli Twój Długi może być zerowy i nie chcesz otrzymywać 4-literowego "null"ciągu, możesz użyć Objects.toString, np .:String s = Objects.toString(date, null);


EDYTOWAĆ:

Odwracasz go za pomocą, Long l = Long.valueOf(s);ale w tym kierunku musisz złapaćNumberFormatException

Grzegorz Pakosz
źródło
13
Zauważ, że Long.valueOf(String)zwraca a Long. Jeśli chcesz long, użyj Long.parseLong(String).
Daniel Hepper
1
Czym różni się ten sposób, czy po prostu konkatować tak: („” + longAttr)?
Marcelo Assis
4
@MarceloAssis .. concat jest około 2x wolniejszy. Jeśli wydajność ma znaczenie w twojej aplikacji.
Hari Menon,
Fajnie, ale pamiętaj, że java.util.Objectsjest dostępna tylko od wersji Java 7.
Guillaume Husta,
1
Przed wersją Java 7 można było również używać Commons Lang, ObjectUtils.toString(Object,String)która jest równoważna. -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Guillaume Husta
207
String strLong = Long.toString(longNumber);

Prosty i działa dobrze :-)

Fisu
źródło
Dla ogólnej konwersji typu poza Datekontekście jest to zalecana praktyka konwertować Longdo String.
KomodoDave,
3
Działa dobrze z typem pierwotnym (długim), ale może generować NPE z typem obiektu (długi), nawet przy autoboxowaniu.
Guillaume Husta
93

Long.toString()

Następujące powinny działać:

long myLong = 1234567890123L;
String myString = Long.toString(myLong);
CONvid19
źródło
1
Czy jest jakaś różnica String.valueOf(myLong)?
Membersound
2
@membersound są takie same. Zasadniczo String.valueOf (long) wywołuje Long.toString ()
Nero
3
@Nero Nie wywołałbym tego samego, ponieważ String.valueOf () zwróci „null” w przypadku wartości null, podczas gdy Long.toString () spowoduje NullPointerException
Dhiresh Jain 27.04.19
21

bardzo proste, po prostu połącz długi do łańcucha.

long date = curDateFld.getDate(); 
String str = ""+date;
MR.M
źródło
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
źródło
3
String logStringVal= date+"";

Może przekształcić długi w ciąg znaków, fajny skrót do konwersji na ciąg ... ale użycie String.valueOf(date);jest zalecane

MBR
źródło
Myślałem, że String.valueOfto preferowane podejście, ale zauważyłem, że to tylko połączenia, Long.toStringwięc może to jest prostszy sposób.
gMale
2
String longString = new String(""+long);

lub

String longString = new Long(datelong).toString();
Nathan Meyer
źródło
Dobrą praktyką w przypadku przepełnienia stosu jest wyjaśnienie, dlaczego Twoje rozwiązanie powinno działać. Aby uzyskać więcej informacji, przeczytaj Jak odpowiedzieć .
Fabian Schultz
1
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienia, zostaw komentarz pod postem. - Z recenzji
Krupal Shah
2
@KrupalShah Odpowiedź tylko na kod może nie być dobra, ale nadal jest odpowiedzią. Poleciłbym ci ten post o LQPRQ: Robisz to źle: prośba o zdrowie psychiczne w kolejce postów niskiej jakości
FelixSFD