วิธีการแปลง / ร่ายยาวเป็น String?


290

ฉันเพิ่งสร้างแอพตัวอย่าง BB ซึ่งสามารถเลือกวันที่ได้

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

หลังจากเลือกวันที่ฉันต้องแปลงค่าที่มีความยาวเป็น String เพื่อให้ฉันสามารถเก็บค่าวันที่ไว้ในฐานข้อมูลได้อย่างง่ายดาย ฉันใหม่สำหรับการพัฒนา Java และ Blackberry

long date = curDateFld.getDate();

ฉันจะแปลงค่า long นี้เป็น String ได้อย่างไร? นอกจากนี้ฉันต้องการแปลงกลับเป็นยาวจาก String ฉันคิดว่าฉันสามารถใช้long l = Long.parseLong("myStr");?

คำตอบ:


393

ดูเอกสารอ้างอิงสำหรับคลาส String :String s = String.valueOf(date);

หาก Long ของคุณอาจเป็นโมฆะและคุณไม่ต้องการรับ"null"สตริง4 ตัวอักษรคุณอาจใช้Objects.toStringเช่น:String s = Objects.toString(date, null);


แก้ไข:

คุณย้อนกลับโดยใช้Long l = Long.valueOf(s);แต่ในทิศทางนี้คุณต้องจับNumberFormatException


13
โปรดทราบว่าผลตอบแทนLong.valueOf(String) Longถ้าคุณต้องการใช้long Long.parseLong(String)
Daniel Hepper

1
อะไรคือความแตกต่างระหว่างวิธีนี้หรือเพียงแค่เชื่อมต่อแบบนี้: ("" + longAttr)?
Marcelo Assis

4
@MarceloAssis .. concat ช้าลงประมาณ 2x หากประสิทธิภาพนั้นสำคัญกับคุณ
Hari Menon

ดี แต่โปรดทราบว่าjava.util.Objectsมีเฉพาะตั้งแต่ Java 7
Guillaume Husta

1
ก่อนหน้า Java 7 คุณสามารถใช้คอมมอนส์ Lang ObjectUtils.toString(Object,String)ซึ่งเทียบเท่าได้ -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Guillaume Husta

207
String strLong = Long.toString(longNumber);

ง่ายและใช้งานได้ดี :-)


สำหรับการแปลงประเภททั่วไปนอกDateบริบทนี้คือการปฏิบัติที่แนะนำการแปลงไปLong String
KomodoDave

3
ทำงานได้ดีกับประเภทดั้งเดิม (ยาว) แต่อาจโยน NPE ด้วยประเภทวัตถุ (ยาว) ถึงแม้จะมีการล็อกอัตโนมัติ
Guillaume Husta

93

Long.toString()

ต่อไปนี้ควรทำงาน:

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

1
มีความแตกต่างString.valueOf(myLong)หรือไม่?
membersound

2
@ membersound พวกเขาเหมือนกัน โดยทั่วไป String.valueOf (ยาว) จะเรียก Long.toString ()
Nero

3
@Nero ฉันจะไม่เรียกเหมือนกันเพราะ String.valueOf () จะส่งกลับ "null" ในกรณีที่เป็นโมฆะในขณะที่ Long.toString () จะทำให้ NullPointerException
Dhiresh Jain

21

ง่ายมากเพียงแค่เชื่อมโยงความยาวกับสตริง

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

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

หรือ

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

เป็นวิธีปฏิบัติที่ดีสำหรับ Stack Overflow เพื่อเพิ่มคำอธิบายว่าทำไมโซลูชันของคุณจึงทำงานได้ดี สำหรับข้อมูลเพิ่มเติมอ่านวิธีการตอบ
เฟเบียนชูลทซ์

1
สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม หากต้องการวิจารณ์หรือขอคำชี้แจงจากผู้แต่งโปรดแสดงความคิดเห็นใต้โพสต์ของพวกเขา - จากการรีวิว
Krupal Shah

2
@KrupalShah คำตอบที่ใช้โค้ดเท่านั้นอาจไม่ใช่คำตอบที่ดี แต่ก็ยังเป็นคำตอบ ฉันอยากจะแนะนำคุณโพสต์นี้เกี่ยวกับ LQPRQ: คุณทำผิด: ข้ออ้างเพื่อสุขภาพในคิวการโพสต์คุณภาพต่ำ
FelixSFD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.