2009-12-06 19 views
234

サンプルBBアプリを作成しました。このアプリでは日付を選択できます。StringをStringに変換/キャストする方法はありますか?

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

日付を選択した後、私は簡単にデータベースのどこかに日付値を格納できるように、文字列へのlong値を変換する必要があります。 私はJavaとBlackberryの開発が初めてです。

long date = curDateFld.getDate(); 

このlong値をStringに変換する方法を教えてください。また、私はStringからlongに変換したい。私はlong l = Long.parseLong("myStr");を使うことができると思いますか?

答えて

352

reference documentation for the String classを参照してください:String s = String.valueOf(date);

あなたのロングがnullであるかもしれないし、あなたが4文字"null"文字列を取得したくない場合は、Objects.toStringを使用する可能性があります、のように:String s = Objects.toString(date, null);


EDIT :

Long l = Long.valueOf(s);を使用して逆にしますが、この方向でキャッチする必要があります。NumberFormatException

+12

注Long.valueOf 'ことを(String) 'は' Long'を返します。 'long'が必要な場合は' Long.parseLong(String) 'を使います。 –

+1

このように、またはconcatのような違いは何ですか:( "" + longAttr)? –

+4

@MarceloAssis .. concatは約2倍遅いです。パフォーマンスがアプリケーションで重要な場合 –

18

非常に単純な、 ちょうど長い文字列に連結します。

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

と罰金:-)

+0

'Date'コンテキスト以外の一般的な型変換では、' Long'を'String'。 – KomodoDave

+3

プリミティブ型(long)で正常に動作しますが、オートボックスを使用していてもオブジェクト型(Long)でNPEをスローすることがあります。 –

+0

シンプルです。 – 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+""; 

はに長いを変換することができ作品文字列オブジェクト、文字列に変換するためのクールなショートカット...しかしString.valueOf(date);の使用がお勧めです

+0

'String.valueOf'が好ましいアプローチだと思っていましたが、' Long.toString'を呼び出すだけで簡単な方法かもしれません。 – gMale

65

次のように動作するはずです:

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

'String.valueOf(myLong)'との違いはありますか? – membersound

+1

わかりませんが、似ているはずです。 –

+0

@ membersound彼らは同じです。基本的にString.valueOf(long)はLong.toString()を呼び出します – Nero

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

または

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

あなたのソリューションがなぜ機能するべきかについての説明を追加するには、Stack Overflowの良い方法です。詳細については、[How To Answer](http://stackoverflow.com/help/how-to-answer)を参照してください。 –

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](レビュー/低品質の投稿/ 14830916) –

+2

@KrupalShahコード専用の回答は良いことではないかもしれませんが、それでも答えはあります。私はLQPRQについてこの投稿をお勧めします:[それは間違っている:低品質投稿キューの正気の嘆願](http://meta.stackoverflow.com/questions/287563/youre-doing-it-間違っている - 間違いのない - 品質の低い投稿の待ち行列) – FelixSFD

関連する問題