Как конвертировать / приводить длинные в String?


290

Я только что создал пример приложения BB, который может позволить выбрать дату.

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

После выбора даты мне нужно преобразовать это длинное значение в строку, чтобы я мог легко сохранить значение даты где-нибудь в базе данных. Я новичок в разработке Java и Blackberry.

long date = curDateFld.getDate();

Как мне преобразовать это длинное значение в строку? Также я хочу преобразовать обратно в длинную строку. Я думаю, что я могу использовать long l = Long.parseLong("myStr");?

Ответы:


393

См. Справочную документацию по классу String :String s = String.valueOf(date);

Если ваш Long может быть нулевым, и вы не хотите получать 4-буквенную "null"строку, вы можете использовать Objects.toString, например:String s = Objects.toString(date, null);


РЕДАКТИРОВАТЬ:

Вы переворачиваете это с помощью, Long l = Long.valueOf(s);но в этом направлении вам нужно пойматьNumberFormatException


13
Обратите внимание, что Long.valueOf(String)возвращает Long. Если вы хотите long, используйте Long.parseLong(String).
Даниэль Хеппер

1
В чем разница между этим способом или просто конкататом вроде этого: ("" + longAttr)?
Марсело Ассис

4
@MarceloAssis .. concat примерно в 2 раза медленнее. Если производительность имеет значение в вашем приложении.
Хари Менон

Хорошо, но обратите внимание, что java.util.Objectsдоступно только с Java 7.
Гийом Хуста

1
До Java 7 вы также могли использовать Commons Lang's, ObjectUtils.toString(Object,String)что эквивалентно. -> commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… , java.lang.String)
Гийом Хуста,

207
String strLong = Long.toString(longNumber);

Просто и отлично работает :-)


Для общего преобразования типов вне Dateконтекста это рекомендуемая практика для преобразования Longв String.
KomodoDave

3
Прекрасно работает с примитивным типом (long), но может создавать NPE с типом Object (Long), даже с автобоксом.
Гийом Хуста

93

Long.toString()

Следующее должно работать:

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

1
Есть ли разница String.valueOf(myLong)?
membersound

2
@ membersound они одинаковые. В основном String.valueOf (long) вызывает Long.toString ()
Nero

3
@Nero Я бы не назвал то же самое, потому что String.valueOf () вернет «ноль» в случае нулевого значения, в то время как Long.toString () вызовет
исключение

21

очень просто, просто соединить длинную строку.

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

Может конвертировать long в строковый объект, классный ярлык для конвертации в string ... но использование String.valueOf(date);желательно


Я думал, что String.valueOfэто предпочтительный подход, но я заметил, что это просто звонки, Long.toStringтак что, возможно, это более простой способ.
gMale

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

или

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

Рекомендуется добавить переполнение стека, чтобы объяснить, почему ваше решение должно работать. Для получения дополнительной информации прочитайте, как ответить .
Фабиан Шульц

1
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом. - Из обзора
Крупал Шах

2
@KrupalShah Ответ только для кода не может быть хорошим, но это все же ответ. Я бы порекомендовал вам этот пост о LQPRQ: вы делаете это неправильно: призыв к здравомыслию в очереди сообщений низкого качества
FelixSFD
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.