Не получается конвертировать Long в String
Пытаюсь сохранить время таймера обратного отсчёта, чтобы при выходе из приложения и при открытии его, скажем, через 3 часа, таймер показывал время с учётом этих 3 прошедших часов. Ошибка java.lang.classcastexception: java.lang.long cannot be cast to java.lang.String
Ошибка в этой строке: chronometer.setText(save.getString(APP_PREFERENCES_CHRONOMETER, deadline1));
Код, вернее его часть, необходимая для понимания сути проблемы:
long duration = TimeUnit.HOURS.toMillis(24); long endOfTask = System.currentTimeMillis() + duration; void saveText () < TextView chronometer = (TextView) findViewById(R.id.chronometer); SharedPreferences save = StartGame.this.getSharedPreferences("save", MODE_PRIVATE); SharedPreferences.Editor editor = save.edit(); editor.putLong(APP_PREFERENCES_CHRONOMETER, endOfTask); editor.apply(); >void loadText ()
Отслеживать
17.9k 11 11 золотых знаков 25 25 серебряных знаков 56 56 бронзовых знаков
задан 3 дек 2020 в 23:10
Bryan Brooks Bryan Brooks
1 2 2 бронзовых знака
getString -> getLong ?
4 дек 2020 в 2:18
Tы сохраняешь putLong, а пытаешься прочитать getString. Как-то определись )
4 дек 2020 в 3:37
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
- java
- android
- mobile-development
java Конвертирование из long в String java.lang.Long cannot be cast to java.lang.Str— шибка как исправить
Используйте, как и для числе другого типа String.valueOf():
String num = String.valueOf(pif.get("AccountNumber")); // где pif.get("AccountNumber") возвращает Long
Key Words for FKN + antitotal forum (CS VSU):
Java: преобразование строки в число и наоборот
В некоторых случаях при программировании на Java нам нужно выполнить преобразование строки в число или числа в строку. Это бывает, если мы имеем величину определённого типа и желаем присвоить эту величину переменной другого типа. Преобразования типов в Java осуществляются разными способами, давайте рассмотрим наиболее популярные из них.
Как преобразовать строку в число в Java?
Речь идёт о преобразовании String to Number. Обратите внимание, что в наших примерах, с которыми будем работать, задействована конструкция try-catch. Это нужно нам для обработки ошибки в том случае, когда строка содержит другие символы, кроме чисел либо число, которое выходит за рамки диапазона предельно допустимых значений указанного типа. К примеру, строку «onlyotus» нельзя перевести в тип int либо в другой числовой тип, т. к. при компиляции мы получим ошибку. Для этого нам и нужна конструкция try-catch.
Преобразуем строку в число Java: String to byte
Выполнить преобразование можно следующими способами:
C помощью конструктора:
try < Byte b1 = new Byte("10"); System.out.println(b1); >catch (NumberFormatException e)
С помощью метода valueOf класса Byte:
String str1 = «141»; try < Byte b2 = Byte.valueOf(str1); System.out.println(b2); >catch (NumberFormatException e)
С помощью метода parseByte класса Byte:
byte b = 0; String str2 = «108»; try < b = Byte.parseByte(str2); System.out.println(b); >catch (NumberFormatException e)
А теперь давайте посмотрим, как выглядит перевод строки в массив байтов и обратно в Java:
String str3 = «20150»; byte[] b3 = str3.getBytes(); System.out.println(b3); //массив байтов переводится обратно в строку try < String s = new String(b3, "cp1251"); System.out.println(s); >catch (UnsupportedEncodingException e)
Преобразуем строку в число в Java: String to int
Здесь, в принципе, всё почти то же самое:
Используем конструктор:
try < Integer i1 = new Integer("10948"); System.out.println(i1); >catch (NumberFormatException e)
Используем метод valueOf класса Integer:
String str1 = «1261»; try < Integer i2 = Integer.valueOf(str1); System.out.println(i2); >catch (NumberFormatException e)
Применяем метод parseInt:
int i3 = 0; String str2 = «203955»; try < i3 = Integer.parseInt(str2); System.out.println(i3); >catch (NumberFormatException e)
Аналогично действуем и для других примитивных числовых типов данных в Java: short, long, float, double, меняя соответствующим образом названия классов и методов.
Как преобразовать число в строку в Java?
Теперь поговорим о преобразовании числа в строку (Number to String). Рассмотрим несколько вариантов:
1. Преобразование int to String в Java:
int i = 53; String str = Integer.toString(i); System.out.println(str);2. Преобразование double to String в Java:
double i = 31.6e10; String str = Double.toString(i); System.out.println(str);3. Преобразуем long to String в Java:
long i = 3422222; String str = Long.toString(i); System.out.println(str);4. Преобразуем float to String в Java:
float i = 3.98f; String str = Float.toString(i); System.out.println(str);Преобразование строки в различные типы оболочки и примитивные типы данных в Java
В этом посте будет обсуждаться, как преобразовать строку в Java в различные типы оболочки и примитивные типы данных, поддерживаемые Java.
1. Преобразование строки в int (или Integer)
Мы можем использовать Integer.parseInt() чтобы получить соответствующее примитивное значение int строки или использовать Integer.valueOf() чтобы получить соответствующее значение класса-оболочки Integer. Если строка не является целым числом, NumberFormatException будет брошен. Для получения более подробной информации см. это почта.