metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-03-21 11:25 am
Entry tags:

java try parse integer

А почему в java нету готовых методов, которые бы позволяли парсить числа, не кидая исключений?
Т.е. возвращали бы true+число, либо false, типа как int.TryParse в дотнете.

[identity profile] vadim ridosh (from livejournal.com) 2013-03-21 12:14 pm (UTC)(link)
Присоединяюсь. ИМХО гугль гуава - это маст хэв, отличный костыль с турбонаддувом для такого инвалида как Java.

[identity profile] dnnx.livejournal.com 2013-03-21 12:33 pm (UTC)(link)
catch (Exception e)

[identity profile] familom.livejournal.com 2013-03-21 01:19 pm (UTC)(link)
Guava?

[identity profile] andrew kondratovich (from livejournal.com) 2013-03-21 01:45 pm (UTC)(link)
кэмел кейс в кложуре - а как же православные дэши ?

[identity profile] metaclass.livejournal.com 2013-03-21 02:01 pm (UTC)(link)
Я одновременно пишу на F#/C#/жабе/clojure/Delphi и С++, из-за чего меня периодически переклинивает и я путаю стили кода. И пока нет возможности из этого исключить лишние языки.

[identity profile] zmila.livejournal.com 2013-03-21 02:44 pm (UTC)(link)
NumberFormatException

за ловлю голого Exception нужно пальцы дверью зажимать. сначала на ногах, при рецидиве - на руках и вон из профессии :)

[identity profile] volodymir-k.livejournal.com 2013-03-21 02:45 pm (UTC)(link)
оцениваю не я один, а вообще-то несколько миллионов программеров

если вы сталкивались когда-нибудь я свой, то могли бы заметить, что практически все из них почему-то не пишут свой класс String / Number / Integer

да что я говорю -- вы же не можете предъявить свой код, который "с нужным" и "не адов"
пиздобольство мне неинтересно

[identity profile] volodymir-k.livejournal.com 2013-03-21 02:48 pm (UTC)(link)
>> Т.е. возвращали бы true+число, либо false, типа как int.TryParse в дотнете.

Note that strings prefixed with ASCII '+' are rejected

велосипеды с квадратом, угу

[identity profile] zmila.livejournal.com 2013-03-21 02:49 pm (UTC)(link)
(type (read-string "1234"))
; java.lang.Long
(type (read-string "aaa1234"))
; clojure.lang.Symbol
(type (read-string "(print 21)"))
; clojure.lang.PersistentList

только хотел сказать, что всё красиво, но

(type (read-string "1234bbb"))
; NumberFormatException Invalid number: 1234bbb clojure.lang.LispReader.readNumber (LispReader.java:258)

[identity profile] enternet.livejournal.com 2013-03-21 03:07 pm (UTC)(link)
Не гони. Что далеко ходить, работу с датами сам писал или йоду взял? А о кэш для боксовых целых спотыкался? Там всё через жопу.

Ява - это пример того, как хороший язык можно испоганить.

[identity profile] andrew kondratovich (from livejournal.com) 2013-03-21 03:11 pm (UTC)(link)
оттуда может вылететь 2 исключения. Писать 2 кетча или один общий. Теоретики блин один лучше другого.

[identity profile] sergiej.livejournal.com 2013-03-21 03:43 pm (UTC)(link)
Там, где ОЖИДАЕТСЯ некорректный ввод (правильность формата не проверена на ГУИ), должен использоваться NumberFormat. Там есть всё, что душа пожелает для "TryParse"

[identity profile] sergiej.livejournal.com 2013-03-21 03:46 pm (UTC)(link)
+100 причём делать его надо как можно ближе места ввода данных криворукими (на ГУИ), чтобы логика приложения уже была чиста от левых чисел в стрингах.

[identity profile] sergiej.livejournal.com 2013-03-21 03:52 pm (UTC)(link)
Чож сразу не Throwable???
Эксепшн это дорогая штука для жаба машины. То что вы написали это, несмотря на корректную работу, обычная индусятина.

[identity profile] aka-shaggie.livejournal.com 2013-03-21 04:24 pm (UTC)(link)
Про Guava уже всё как надо рассказали. И ещё можно добавить, что в apache commons lang есть math.NumberUtils, который тоже это умеет. И в любой мало-мальский проект эта либа какими-нибудь зависимостями да притянута.

Но вообще проблема системная. Питонисты, например, не умеют без KeyError когда у них ключ в мапе не нашёлся, и ничего, тишина, никто не возмущается.

[identity profile] juan-gandhi.livejournal.com 2013-03-21 04:35 pm (UTC)(link)
Ввести Maybe, написать самому. Делов-то.

Но тут другой нюанс - а на хера париться с джавой?

[identity profile] juan-gandhi.livejournal.com 2013-03-21 04:36 pm (UTC)(link)
Это не правильный метод, а одно из решений, и не думаю, что самое хорошее.

[identity profile] metaclass.livejournal.com 2013-03-21 04:42 pm (UTC)(link)
Охохо, с KeyError в питоне мне пришлось обшарить внутренности питономашины, чтобы доказать упертым линуксоидам что это косяк, а не "так можно".

[identity profile] vadim ridosh (from livejournal.com) 2013-03-21 04:49 pm (UTC)(link)
Это ещё посмотреть где велосипеды с квадратом - в гуаве которая ведёт себя одинаково для JDK 1.6 и 1.7 или в JDK который до 1.7 реджектил строчки с плюсом а потом вдруг решил что оно нормально и можно распарсить.

[identity profile] henu3detb.livejournal.com 2013-03-21 06:27 pm (UTC)(link)
Тогда, конечно, вопрос - а с чем париться?
develop7: (dero)

[personal profile] develop7 2013-03-22 05:10 am (UTC)(link)
Не стесняйтесь цитировать полностью: «потому что иди-ка ты нахуй»
develop7: (dero)

[personal profile] develop7 2013-03-22 05:12 am (UTC)(link)
Правильный вопрос: «зачем в java нету готовых методов, которые…» и далее по тексту.

[identity profile] andrew kondratovich (from livejournal.com) 2013-03-22 06:58 am (UTC)(link)
Выше уже писали - не смотря на то, что эксепшены для исключительный ситуаций, в данном случае подобное их использование в виде управляющих конструкций навязано отсутствием других вменяемых вариантов.

[identity profile] sil-e-nt.livejournal.com 2013-03-22 07:50 am (UTC)(link)
Ребе. Вот смотрите, решила индустрия вас послушать и наклепала дублирующих функций с кодами возврата. Хомячки обрадовались (это ж не надо теперь эти долбаные исключения обрабатывать) и начали их использовать. А принуждения к верификации кода возврата -- нету! Нету, блять, ващще! Кроме вменяемого тимлида, который будет каждый день проверять выхлоп и все фиксы и тэпэ и тэдэ.

А теперь представьте во что превратятся либы через пару лет. Как вы будете материться на то, что "какого хера оно продолжает\дохнет\подставьте сами без какой либо инфы?".

[identity profile] sil-e-nt.livejournal.com 2013-03-22 07:54 am (UTC)(link)
Еще вот тут отмечусь. Вот сделали туплом аутпут, ок, облегчили себе жизнь и вместо исключения пользуем дефолтное значение.
Берет юзверь вашу прогу, вводит какую-нибудь шнягу, верную с его точки зрения (можно я не буду придумывать варианты?) А потом несколько дней ебется в поисках решения, хули получается совершенно другое значение на выходе?

Page 4 of 5