Làm thế nào để chuyển đổi / cast dài thành String?


290

Tôi vừa tạo ứng dụng BB mẫu, có thể cho phép chọn ngày.

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

Sau khi chọn ngày, tôi cần chuyển đổi giá trị dài đó thành Chuỗi, để tôi có thể dễ dàng lưu trữ giá trị ngày ở đâu đó trong cơ sở dữ liệu. Tôi chưa quen với việc phát triển Java và Blackberry.

long date = curDateFld.getDate();

Tôi nên chuyển đổi giá trị dài này thành Chuỗi như thế nào? Ngoài ra tôi muốn chuyển đổi trở lại dài từ String. Tôi nghĩ rằng tôi có thể sử dụng long l = Long.parseLong("myStr");?

Câu trả lời:


393

Xem tài liệu tham khảo cho lớp String :String s = String.valueOf(date);

Nếu Long của bạn có thể là null và bạn không muốn nhận "null"chuỗi 4 chữ cái , bạn có thể sử dụng Objects.toString, như:String s = Objects.toString(date, null);


BIÊN TẬP:

Bạn đảo ngược nó bằng cách sử dụng Long l = Long.valueOf(s);nhưng theo hướng này bạn cần phải nắm bắtNumberFormatException


13
Lưu ý rằng Long.valueOf(String)trả về a Long. Nếu bạn muốn một long, sử dụng Long.parseLong(String).
Daniel Hepper

1
Có gì khác biệt giữa cách này hay chỉ là concat như thế này: ("" + longAttr)?
Marcelo Assis

4
@MarceloAssis .. concat chậm hơn khoảng 2 lần. Nếu hiệu suất quan trọng trong ứng dụng của bạn.
Hari Menon

Đẹp, nhưng lưu ý rằng java.util.Objectschỉ có sẵn kể từ Java 7.
Guillaume Husta

1
Trước Java 7, bạn cũng có thể sử dụng Commons Lang ObjectUtils.toString(Object,String)tương đương. -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/ mẹo , java.lang.String)
Guillaume Husta

207
String strLong = Long.toString(longNumber);

Đơn giản và hoạt động tốt :-)


Đối với chuyển đổi loại chung ngoài Datengữ cảnh, đây là cách thực hành được đề xuất để chuyển đổi Longsang String.
KomodoDave

3
Hoạt động tốt với loại nguyên thủy (dài), nhưng có thể ném NPE với loại Đối tượng (Dài), ngay cả với hộp thư tự động.
Guillaume Husta

93

Long.toString()

Sau đây nên làm việc:

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

1
Có sự khác biệt String.valueOf(myLong)nào không?
viên

2
@membersound chúng giống nhau. Về cơ bản String.valueOf (dài) gọi Long.toString ()
Nero

3
@Nero Tôi sẽ không gọi như vậy vì String.valueOf () sẽ trả về "null" trong trường hợp null, trong khi Long.toString () sẽ gây ra
NullPulumException

21

rất đơn giản, chỉ cần nối dài thành một chuỗi.

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

Có thể chuyển đổi dài vào đối tượng chuỗi, mát phím tắt để chuyển đổi thành chuỗi ... nhưng sử dụng String.valueOf(date);là khuyến khích


Tôi nghĩ rằng đó String.valueOflà cách tiếp cận ưa thích nhưng tôi nhận thấy rằng chỉ cần gọi Long.toStringnên có lẽ đó là cách đơn giản hơn.
gMale

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

hoặc là

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

Đó là một thực hành tốt trên Stack Overflow để thêm một lời giải thích về lý do tại sao giải pháp của bạn nên hoạt động. Để biết thêm thông tin đọc Làm thế nào để trả lời .
Fabian Schultz

1
Điều này không cung cấp một câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ. - Từ đánh giá
Krupal Shah

2
@KrupalShah Một câu trả lời chỉ có mã có thể không phải là một câu trả lời hay, nhưng nó vẫn là một câu trả lời. Tôi muốn giới thiệu cho bạn bài đăng này về LQPRQ: Bạn đang làm sai: Một lời cầu xin sự tỉnh táo trong hàng đợi Bài viết chất lượng thấp
FelixSFD
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.