2009-12-06 41 views
234

Tôi vừa tạo mẫu ứng dụng BB, có thể cho phép chọn ngày.Làm thế nào để chuyển đổi/cast dài thành String?

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

Sau khi chọn ngày, tôi cần phải 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 mới phát triển Java và Blackberry.

long date = curDateFld.getDate(); 

Làm cách nào để chuyển đổi giá trị dài này thành chuỗi? 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");?

Trả lời

352

Xem reference documentation for the String class: String s = String.valueOf(date);

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


EDIT :

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ắt NumberFormatException

+12

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

+1

Sự khác biệt giữa cách này hoặc chỉ là concat như thế này: ("" + longAttr)? –

+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. –

18

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

long date = curDateFld.getDate(); 
String str = ""+date; 
172
String strLong = Long.toString(longNumber); 

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

+0

Để chuyển đổi loại chung bên ngoài ngữ cảnh 'Ngày', đây là thực tiễn được khuyến nghị để chuyển đổi' Long' thành 'Chuỗi'. – KomodoDave

+3

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

+0

Đơn giản là tốt. – HoldOffHunger

9

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 thành dài chuỗi đối tượng, shortcut mát mẻ để chuyển đổi thành chuỗi ... nhưng sử dụng String.valueOf(date); nên

+0

Tôi nghĩ 'String.valueOf' là 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.toString' để có thể đó là cách đơn giản hơn. – gMale

65

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

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

Có sự khác biệt nào với 'String.valueOf (myLong)' không? – membersound

+1

Tôi không chắc chắn, nhưng chúng phải giống nhau. –

+0

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

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

hoặc

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

Thực hành tốt trên Stack Overflow để thêm giải thích là tại sao giải pháp của bạn nên hoạt động. Để biết thêm thông tin, hãy đọc [Cách trả lời] (http://stackoverflow.com/help/how-to-answer). –

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ 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á] (/ đánh giá/bài đăng chất lượng thấp/14830916) –

+2

@KrupalShah Câu trả lời chỉ có mã không phải là câu trả lời hay nhất, nhưng đó vẫn là câu trả lời. Tôi sẽ 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 cho sự tỉnh táo trong hàng đợi Bài viết có chất lượng thấp] (http://meta.stackoverflow.com/questions/287563/youre-doing-it- sai-a-plea-cho-sanity-in-the-thấp-chất lượng-posts-queue) – FelixSFD

Các vấn đề liên quan