Так как это самый популярный вопрос в отношении этой проблемы, я снова опубликую здесь еще один ответ:
Похоже, что есть более простой способ сделать это (но только в MySQL):
select *
from (select * from mytable order by id, rev desc ) x
group by id
Пожалуйста, прокомментируйте ответ пользователя Bohemian в на этот вопрос за предоставление такого краткого и элегантного ответа на эту проблему.
EDIT: хотя это решение работает для многих людей, оно может быть нестабильным в долгосрочной перспективе, поскольку MySQL не гарантирует, что оператор GROUP BY вернет значимые значения для столбцов, не входящих в список GROUP BY. Поэтому используйте это решение на свой страх и риск
Показанный код Java отлично работает, предполагая, что doubleValue является float или double.
Как предложено здесь , Intent обрабатывается OutgoingCallBroadcaster.processIntent (), который обрабатывает Строка, указанная в намерении, вызовите PhoneNumberUtils.convertKeypadLettersToDigits () и PhoneNumberUtils.stripSeparators()
.
Последний разделит все, кроме чисел, *
, #
, +
и символы WILD
, WAIT
и PAUSE
.
Здесь теряется ваш разделитель десятичных чисел.
Таким образом, либо разделитель должен быть экранирован до определенного числового значение или заменяется одним из принятых символов, чтобы фактически покинуть ваш телефон и добраться до приемника.
Тот, кто несет ответственность за принимающую сторону, может, вероятно, советовать вам правильно форматировать десятичное число.
Размышляя о том, как работает pinpad, который мой банк прислал мне, вам всегда нужно вводить две цифры после десятичной точки, а форматирование на дисплее касается положения точки.
Поэтому, если я вхожу в «1», он интерпретируется как 0,01. Аналогично, «1023» будет 10.23.
Я думаю, что такой же подход мог бы сработать для вас. Таким образом, 1.23 вводится как «123» и 0.80 как «80»
Я не вижу ссылки, которая ограничивает символы 0-9 # *, но все примеры следуют этому формату. Однако ваш пример начинается с * 234, который, похоже, соответствует этому правилу в спецификации
Случай a) 1, 2 или 3 цифры из набора (*, #), за которым следует 1X (Y), где X = любое число 0-4, Y = любое число 0-9, затем, необязательно «*, за которым следует любое количество любых символов» и завершение с # SEND: этот случай зарезервирован для использования HPLMN. Когда обслуживающая сеть получает такое сообщение от приглашенного абонента, оно передает сообщение USSD непосредственно в HPLMN. Если он получает его от домашнего абонента, он должен решить, следует ли его обрабатывать локально или передать его в HLR
http://www.etsi.org/deliver /etsi_ts/100600_100699/100625/07.00.00_60/ts_100625v070000p.pdf
В общем, я не уверен, что HPLMN (Home Public Land Mobile Network) или HLR (Home Location Register) будет ожидать дополнительные символы, даже если весь набор символов и даже другие наборы символов разрешены в протоколе USSD.