Nasıl uzun dönüştürmek için / String?


290

Ben sadece tarihi seçmek için izin verebilirsiniz örnek BB uygulaması oluşturdu.

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

Tarihi seçtikten sonra, tarih değerini veritabanında bir yerde kolayca saklayabilmem için bu uzun değeri String'e dönüştürmem gerekiyor. Java ve Blackberry geliştirmede yeniyim.

long date = curDateFld.getDate();

Bu uzun değeri String'e nasıl dönüştürmeliyim? Ayrıca uzun String geri dönüştürmek istiyorum. Bence bunun için kullanabilir long l = Long.parseLong("myStr");miyim?

Yanıtlar:


393

String sınıfı için referans belgelerine bakın :String s = String.valueOf(date);

Long'unuz boş olabilir ve 4 harfli bir "null"dize almak istemiyorsanız aşağıdaki Objects.toStringgibi kullanabilirsiniz :String s = Objects.toString(date, null);


DÜZENLE:

Bunu kullanarak ters çevirirsiniz, Long l = Long.valueOf(s);ancak bu yönde yakalamanız gerekirNumberFormatException


13
A Long.valueOf(String)döndürdüğünü unutmayın Long. Eğer istiyorsanız long, kullanın Long.parseLong(String).
Daniel Hepper

1
Bu yol arasındaki fark nedir, ya da sadece şu şekilde concat: ("" + longAttr)?
Marcelo Assis

4
@MarceloAssis .. concat yaklaşık 2 kat daha yavaştır. Uygulamanızda performans önemliyse.
Hari Menon

Güzel, ama java.util.Objectssadece Java 7'den beri mevcut olduğuna dikkat edin .
Guillaume Husta

1
Java 7'den önce ObjectUtils.toString(Object,String), eşdeğer olan Commons Lang'ları da kullanabilirsiniz . -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Guillaume Husta

207
String strLong = Long.toString(longNumber);

Basit ve iyi çalışıyor :-)


DateBağlamın dışındaki genel tür dönüşümü için bu, dönüştürmek Longiçin önerilen uygulamadır String.
KomodoDave

3
İlkel tipte (uzun) iyi çalışır, ancak otomatik kutulamada bile Nesne tipi (Uzun) ile NPE atabilir.
Guillaume Husta

93

Long.toString()

Aşağıdakiler işe yaramalıdır:

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

1
Fark var mı String.valueOf(myLong)?
membersound

2
aynı şeyi hatırlarlar. Temelde String.valueOf (long), Long.toString ()
Nero

3
@Nero Ben aynı çağrı olmaz çünkü String.valueOf () boş durumunda "null" döndürür, Long.toString () ise NullPointerException neden olur
Dhiresh Jain 27:09

21

çok basit, sadece bir dizeye uzun bitiştirmek.

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

Uzun dize nesnesine dönüştürebilirsiniz, dize dönüştürmek için serin kısayol ... ama kullanımı String.valueOf(date);tavsiye edilir


Ben String.valueOftercih edilen bir yaklaşım olduğunu düşündüm ama sadece çağrıları Long.toStringbu yüzden belki de daha basit bir yol olduğunu fark ettim .
gMale

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

veya

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

Çözümünüzün neden çalışması gerektiğine ilişkin bir açıklama eklemek için Stack Overflow konusunda iyi bir uygulama. Daha fazla bilgi için Nasıl Yanıtlanır bölümünü okuyun .
Fabian Schultz

1
Bu soruya bir cevap sağlamaz. Bir yazardan eleştiri veya açıklama istemek için gönderilerinin altına bir yorum bırakın. - Yorumdan
Krupal Shah

2
@KrupalShah Yalnızca kod yanıtı iyi bir yanıt olmayabilir, ancak yine de bir yanıttır. LQPRQ hakkında bu yazıyı tavsiye ederim: Yanlış yapıyorsun: Düşük Kalite Mesajları kuyruğunda akıl sağlığı için bir savunma
FelixSFD
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.