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");?

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


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 :-)


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);

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;

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

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


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();

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.