Текст строки в длинное значение - PullRequest
2 голосов
/ 11 мая 2011

Ну вот и все! Мне нужно преобразовать текст строки (например, "Hrd $ 457") в длинное значение. В BlackBerry IDE есть кнопка, которая делает это, но мне нужно сделать это по коду. Обратите внимание, что строка является буквенно-цифровой.

THX!

Примечание: Извините, если мой вопрос был не совсем понятен. Кнопка IDE, о которой я говорю, преобразует всю строку в длинное значение, которое делает эту строку уникальным числом. Документация BlackBerry гласит:

"Чтобы создать уникальный длинный ключ, в интегрированной среде разработки BlackBerry® введите строковое значение. com.rim.samples.docs.userinfo Щелкните правой кнопкой мыши строку и выберите «Преобразовать com.rim.samples.docs.userinfo» в long. "

Итак, мне нужно сделать то же самое, но по коду.

Я очень ценю твоих друзей и огромное спасибо за помощь.

Ответы [ 4 ]

5 голосов
/ 11 мая 2011

Если вы просто ищете числовую константу для строки, вы можете сделать следующее.

String str = "asdfasdf345asdfasdf";
int asInt = str.hashCode();
long asLong = (long) asInt;
2 голосов
/ 13 мая 2011

Возвращает первые 8 байтов дайджеста SHA1 как long. Тот же результат можно получить в интерактивном режиме с помощью BlackBerry JDE, выделив строку, щелкнув правой кнопкой мыши и выбрав «Преобразовать» в длинную из контекстного меню.

long net.rim.device.api.util.StringUtilities.stringHashToLong(String key)
0 голосов
/ 11 мая 2011

Это другой подход.Если есть несколько номеров, вы можете перебрать строку с помощью сканера.

Scanner scanner = new Scanner(str);
scanner.useDelimiter("\\D+");
Long number = scanner.nextLong();
0 голосов
/ 11 мая 2011

Не уверен, что полностью понимаю ваш пример, но как это?

String match = Pattern.compile("\\d+").matcher("Hrd$457").group();
long longValue = Long.parseLong(match).longValue();
...