Як перетворити / передати довго в String?


290

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

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

Вибравши дату, мені потрібно перетворити це довге значення в String, щоб я міг легко зберігати значення дати десь у базі даних. Я новачок у розробці Java та Blackberry.

long date = curDateFld.getDate();

Як я повинен конвертувати це довге значення у String? Також я хочу перетворити назад на довгий з String. Я думаю, для чого я можу скористатися 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)повертається a Long. Якщо ви хочете long, використовуйте Long.parseLong(String).
Даніель Хеппер

1
У чому різниця між цим способом, або просто стисло так: ("" + longAttr)?
Марсело Ассіс

4
@MarceloAssis .. concat приблизно в 2 рази повільніше. Якщо продуктивність має значення у вашій програмі.
Харі Менон

Приємно, але зауважте, що java.util.Objectsвін доступний лише з Java 7.
Гійом Хуста

1
Перед Java 7 ви могли також використовувати Commons Lang, 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
Добре працює з примітивним типом (довгий), але може запускати NPE з типом Object (Long), навіть при автобоксінгу.
Гійом Хуста

93

Long.toString()

Слід працювати:

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

1
Чи є якась різниця String.valueOf(myLong)?
члени звуку

2
@membersound вони однакові. В основному String.valueOf (довгі) дзвінки Long.toString ()
Nero

3
@Nero Я б не називав те саме, тому що String.valueOf () поверне "null" у разі нуля, тоді як Long.toString () спричинить NullPointerException
Dhiresh Jain

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

Може перетворити довгий в рядковий об'єкт, класний ярлик для перетворення в рядок ... але використання 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.