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] artureg.livejournal.com 2013-03-21 08:26 am (UTC)(link)
ответ "потому что" тебя устроит?

[identity profile] bydlorus.livejournal.com 2013-03-21 08:32 am (UTC)(link)
Согласно Java Guidelines, если есть два способа реализовать функциональность - правильный и медленный - необходимо выбрать второй вариант, иначе мейнфреймы будут плохо продаваться.

(Anonymous) 2013-03-21 08:33 am (UTC)(link)
Наверное, потому что в джаве нет out параметров.

[identity profile] enternet.livejournal.com 2013-03-21 08:37 am (UTC)(link)
Если кратко, то стандартную библиотеку Java писали студенты за еду. Это реально адов пиздец. Нет ничего нужного вообще. Даже работу со стандартными типами данных умудрились испоганить.

[identity profile] kosiakk.livejournal.com 2013-03-21 08:42 am (UTC)(link)
Это уже не модно.

void Integer.tryParse( String input, (int -> void) callback)

[identity profile] volodymir-k.livejournal.com 2013-03-21 09:14 am (UTC)(link)
java.text.NumberFormat::parse(String source, ParsePosition parsePosition)
http://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html#parse%28java.lang.String,%20java.text.ParsePosition%29
во всех видах, позах, вариантах

[identity profile] vit-r.livejournal.com 2013-03-21 09:14 am (UTC)(link)
Ха. Апатамучта ява предназначена для криворуких обезьян, то есть изначально предполагается, что все эти true/false никто проверять не будет.

[identity profile] ivan sopov (from livejournal.com) 2013-03-21 09:37 am (UTC)(link)
com.google.common.primitives.Ints.tryParse

[identity profile] kzn.livejournal.com 2013-03-21 09:39 am (UTC)(link)
А в чем их возвращать? Можно сделать class что-то вроде MutableInteger, но как-то не очень красиво.
Можно возвращать Object[] - но это совсем уж извращение.

Чем так сильно отличает возвращение статуса от кидания исключения?

[identity profile] andrew kondratovich (from livejournal.com) 2013-03-21 09:43 am (UTC)(link)
  public static int getInteger(String value, int def) {
    try {
      return Integer.parseInt(value);
    } catch (Exception e) {
      return def;
    }
  }
Edited 2013-03-21 09:45 (UTC)
(deleted comment) (Show 2 comments)

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

[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, написать самому. Делов-то.

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

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