Comment convertir / convertir long en chaîne?

290

Je viens de créer un exemple d'application BB, qui peut permettre de choisir la date.

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

Après avoir choisi la date, je dois convertir cette longue valeur en chaîne, afin de pouvoir facilement stocker la valeur de date quelque part dans la base de données. Je suis nouveau dans le développement Java et Blackberry.

long date = curDateFld.getDate();

Comment dois-je convertir cette valeur longue en chaîne? Aussi, je veux reconvertir en long à partir de String. Je pense que je peux l'utiliser long l = Long.parseLong("myStr");?

user225714
la source

Réponses:

393

Voir la documentation de référence pour la classe String :String s = String.valueOf(date);

Si votre Long peut être nul et que vous ne voulez pas obtenir une "null"chaîne de 4 lettres , vous pouvez utiliser Objects.toString, comme:String s = Objects.toString(date, null);


ÉDITER:

Vous l'inverse en utilisant, Long l = Long.valueOf(s);mais dans cette direction, vous devez attraperNumberFormatException

Gregory Pakosz
la source
13
Notez que Long.valueOf(String)renvoie a Long. Si vous en voulez un long, utilisez Long.parseLong(String).
Daniel Hepper
1
Quelle est la différence entre cette façon, ou tout simplement concat comme ceci: ("" + longAttr)?
Marcelo Assis
4
@MarceloAssis .. concat est environ 2x plus lent. Si les performances sont importantes dans votre application.
Hari Menon
Sympa, mais notez que java.util.Objectsc'est uniquement disponible depuis Java 7.
Guillaume Husta
1
Avant Java 7, vous pouviez également utiliser Commons Lang, ObjectUtils.toString(Object,String)qui est équivalent. -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Guillaume Husta
207
String strLong = Long.toString(longNumber);

Simple et fonctionne bien :-)

Fisu
la source
Pour la conversion de type général en dehors du Datecontexte c'est la pratique recommandée pour convertir Longà String.
KomodoDave
3
Fonctionne très bien avec le type primitif (long), mais peut lancer NPE avec le type d'objet (Long), même avec la mise en boîte automatique.
Guillaume Husta
93

Long.toString()

Les éléments suivants devraient fonctionner:

long myLong = 1234567890123L;
String myString = Long.toString(myLong);
CONvid19
la source
1
Y a-t-il une différence avec String.valueOf(myLong)?
membersound
2
@membersound, ce sont les mêmes. Fondamentalement, String.valueOf (long) appelle Long.toString ()
Nero
3
@Nero Je n'appellerais pas la même chose car String.valueOf () retournera "null" en cas de null, tandis que Long.toString () provoquera NullPointerException
Dhiresh Jain
21

très simple, il suffit de concaténer le long en une chaîne.

long date = curDateFld.getDate(); 
String str = ""+date;
MR.M
la source
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);
iKushal
la source
3
String logStringVal= date+"";

Peut convertir le long en objet chaîne, raccourci cool pour convertir en chaîne ... mais l'utilisation de String.valueOf(date);est recommandée

MBR
la source
Je pensais que String.valueOfc'était l'approche préférée, mais j'ai remarqué que ce n'était que des appels, Long.toStringalors c'est peut-être la manière la plus simple.
gMale
2
String longString = new String(""+long);

ou

String longString = new Long(datelong).toString();
Nathan Meyer
la source
Il est recommandé sur Stack Overflow d'ajouter une explication sur les raisons pour lesquelles votre solution devrait fonctionner. Pour plus d'informations, consultez Comment répondre .
Fabian Schultz
1
Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. - De l'avis
Krupal Shah
2
@KrupalShah Une réponse uniquement codée n'est peut-être pas une bonne réponse, mais c'est toujours une réponse. Je vous recommanderais cet article sur le LQPRQ: vous vous trompez: un plaidoyer pour la raison dans la file d'attente des messages de faible qualité
FelixSFD