Аноны, я знаю что среди вас примерно сто тысяч программистов 3000к/нсек.Подскажите кто знает.Суть такова в одной джава-программе нужно проверять ввод пользователя в JtextField на предмет, является ли он числом или нет.Почитал в интернете, что с этим отлично справляется метод NumberUtils.isNumber(String str) из какой-то там библиотеки commons-lang.Я вроде нашел все что надо в интернете но никак не могу это подключить в Intelij IDEA, да и вообще не понимаю как это работает.Может кто-нибудь пошагово пояснить что делать надо? У меня уже пиздец пердак горит от того какой я тупой
О, получилось. Только этот метод почему-то deprecated. Пиздец, потратил на это джва часа. Какой же я долбоеб, надо в дворники идти. Всем спасибо.
>>204959870 (OP)можно самому это сделать без сторонних либкак пример:public static boolean isNumeric(String str) { return str.matches("-?\d+(\.\d+)?");}метод matches возвращает true, если объект str удовлетворяет регекспу в скобках
>>204959870 (OP)Это же джаваПопробуй распарсить число из строки, обернув это в try-catch Если вылезает какой-нибудь numberformatexception, то выкидывай окошко пользователю и требуй ввод зановоИ не нужно никаких коммонсов
>>204960628Велосипеды - полное говноНенадёжное решениеА что если локаль такая сейчас стоит, что в числах запятая, а не точка?
>>204960628Да меня принципиально интересовал вопрос как вообще подключить что-то левое. В принципе можно вообще просто перехватить исключение и в его обработке вернуть false, как вариант.Кстати, если уж ты это посоветовал, как это работает? Я поверхностно понимаю регулярные выражения, но тут что-то злое.
>>204960673Да не в этой микрозадаче состоял вопрос. Может и что-то реально сложное понадобиться, а я пень-пнём в теме
>>204960710>Велосипеды - полное говноtrue, но как по мне лучше пытаться самому во всём разобраться пока учишься, чем понапихивать либ и не иметь понятия как все работает.>А что если локаль такая сейчас стоит, что в числах запятая, а не точка?альтернативу в регекспе написать.
>>204960714если в инглише более-менее понимаешь, можно засунуть эту регулярку в regex101. com. Там описание каждой группы и тд
>>204960947Там еще прикол в этом пакете, что он может распарсить все способы представления чисел, которые удовлетворяют нотациям Java (со всекими постфиксами, префиксами, мантиссами и прочим). Правда, не особо понимаю нафига это нужно может быть в обычных юзер-приложениях
>>204961043было бы странно, если бы либа этого не предоставляла. Я поэтому и написал про велосипед с регуляркой, чтобы оптимизация по памяти была без лишнего функционала библиотечки
>>204960782Насколько я понял, ты просто подложил локальный jar c библиотекойПора переходить на системы сборкиMaven там, gradleТогда управление зависимостями будет гораздо прощеВписываешь нужную зависимость в dependencies в pom.xml и всё само подтянетсяНикакой ебли с подкладыванием библиотек в проект
>>204961004> -?\d+(\.\d+)?А как научиться такие самому составлять? Есть где-то годный, полный гайд по регуляркам?
>>204961251Тебе насколько углублённо надо?Чтобы прям совсем понимать, надо немножечко теории автоматов изучить
>>204959870 (OP)А сам догадаться не смог?bool isNumber(String s) { try { Integer.parseInt(s); return true; } catch (NumberFormatException e) { return false; }}
>>204960710>А что если локаль такая сейчас стоит, что в числах запятая, а не точка?Значит юзер и будет ожидать, что прога даст ввести запятую вместо точки. И если не даст, то он будет очень удивлён. К тому же, в любом случае в дальнейшей обработке ты будешь как-то преобразовывать строку в число, не так ли? Логично валидировать той же функцией, чтобы гарантировать, что ошибка не выскочит позднее.
>>204961404Мне до уровня электронов желательно. Я в общем-то в общих чертах понимаю про конечные автоматы, читал в паре книжек по CS
>>204961473Блеат, я же уже писал что мне не столько эта пустячная задача нужна была, сколько понимать принцип подтягивания в проект левых либ
>>204961611Тебе всё правильно сказали - это надо делать с помощью систем сборки. maven/gradle как самый мейнстрим. А вручную таскать jar в проект - дикий костыль.
>>204961512Ну ты же как-то нашёл, что нужный метод есть в commonsвбей в гугель название либы maven, тебы выкинет на mavencentral, оттуда спиздишь группу,артефактайди и версию
>>204961512раньше всегда заходил на мавен репозиторий и там уже искал нужный. Вообще org.apache.commons/commons-lang3 что-то такое должно быть
>>204959870 (OP)> Аноны, я знаю что среди вас примерно сто тысяч программистов 3000к/нсек.> Подскажите кто знает.> Суть такова в одной джава-программе нужно проверять ввод пользователя в JtextField на предмет, является ли он числом или нет.Я бы просто разрешил на клиенте писать в поле только 0123456789Потом проверял на сервере если в поле другие символы.Также там есть метод встроенный который переводит строку в число и обратно. И присылает исключение если чтото ее так.
>>204961669>>204961693>>204961725Уже сделал вот так через Maven.А кратко кто-то может сказать в чем суть технологии? Если я перевезу проект на другую машину где не будет либы на локальном диске, он подключится к ней через Maven? в этом прикол?И кстати, что за красный прямоугольник на JAva в dependencies? оно там так и было до того как я начал мутить. вроде бы.
>>204961729Да, я в курсе. он даже там написан в одной из строчек заготовки. Вопрос по другому звучал. Наверное мне не надо было описывать частный пример задачи
>>204961936Вытянет зависимость с maven-репозитория при построенииЕсли хочется уже скомпиленную прогу перенести на другой комп, то ты используешь плагины упаковки как твой душе угодно. В jar, war, c зависимостями или без, в общем, как тебе надо
>>204959870 (OP)Не нужны всякие левые либы, канонично делать так: try { Integer.parseInt(text); //валидно } catch (NumberFormatException e) { //невалидно }Если у тебя куча полей и везде надо проверять, то копай в сторону InputVerifier , пишешь один верифаер и прикручиваешь его к каждому полю через setVerifier или както так.
>>204962481Это сарказм и надо еще подробней?Вот готовый метод, проверяющий текст, число ли это:private boolean isNumber(String text) {try {Integer.parseInt(text); return true;} catch (NumberFormatException e) {return false;}
>>204961936Оперирует pom.xml где описывается структура-ищет в локальных репозиториях либы. Если таких не получается найти, подрубается к указанному мавен репозиторию и вытягивает либы.-ищет либы по groupId, artifactId и versiongroupId- доменartifactId- сам проект.
>>204962621Сарказм, потому что мне интересно было как подключить библиотеку левую. Вариант с перехватом исключения я же сам первый и предложил где-то там выше.Кстати, из репы подгрузилась гора всякого левого мусора. Я могу все ненужное снести тупо Delete-ом?И влияет ли это как-то на окончательный объем того говно которое сбилдится
>>204962846Чтоб проект нормально переносился, тебе надо сделать проект на maven. У тебя папки проекта должны иметь определенную структуру, должен быть файл pom.xml где ты прописываешь зависимости и прочую фигню.Начни новый проект и укажи там где-то чтоб использовался maven. Затем перенеси в него всё что написал.
>>204963115Это я сюда хотел ответить: >>204961936Вобщем ты не совсем правильно используешь maven, грубо говоря ты себе просто в идею добавил зависимость используя некоторые возможности мавена (его репозиторий).
>>204963315Хорошо, просто мой уровень это хэллоу-ворлды писать. Я как-нибудь обязательно нагуглю как пользоваться всем этим, если вдруг смогу взлететь на этой почве.
>>204963394А при чем тут swing? так говоришь, будто он сам по себе какую-то логику предоставляет, которая упрощает сам управляющий код.
>>204963487Ну просто swing это настолько древнее мертвое зло, что я хуй знает.>>204963514Другой язык, если хочешь писать десктопные приложения, c# какой-нить, не знаю что сейчас актуально.
>>204963586А что, в шарпе какой-то более пиздатый дизайн у типовых оконных элементов? Не особо понимаю просто что не так со свингом. Ну выглядит уебищно конечно, но это наверное потому что все дефолтное использовано
>>204963717Кроссплатформенные декстопные приложения всегда будут уродливые. В случае джавы, они еще и тормозные, тяжело стартуют из-за виртуальной машины.Если писать под винду, то приложение на шарпе будет и красивей и быстрей и более плотно использующее фичи винды. Но я особо не ебу, что там на декстопной разработке.
>>204963926>В случае джавы, они еще и тормозные, тяжело стартуют из-за виртуальной машины.Двачую. Пиксельный Зомбоид написан на джаве и потому немного притормаживает даже на средних машинах, хотя по факту это ебучие 2D пиксели.
>>204964124>>204963926JavaFX есть такая скриптовая хуйня, умеет взаимодействовать с java-кодом и выглядит красиво. Но я в ней не волоку.
>>204959870 (OP)>Суть такова в одной джава-программе нужно проверять ввод пользователя в JtextField на предмет, является ли он числом или нет.>Почитал в интернете, что с этим отлично справляется метод NumberUtils.isNumber(String str) из какой-то там библиотеки commons-lang.>Я вроде нашел все что надо в интернете но никак не могу это подключить в Intelij IDEA, да и вообще не понимаю как это работает.>Может кто-нибудь пошагово пояснить что делать надо? У меня уже пиздец пердак горит от того какой я тупойсделай Integer.parseInt(), если вылезет экзепшн - то это не число, хуле тут думать. https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String,%20int)
>>204959870 (OP)Используй мавен или градл и просто и без задней мысли подтягивай с центрального репозитория.
Раз такой тред, бывалые на собеседованиях, подскажите, какой уровень Java требуется от джуна? что вообще надо знать? голого кора хватит, или надо еще понимать во всяких технологиях которые используют джаву и библиотеках типа JDBC и прочего?
>>204971332Задачи разные были, потоки, хитрая работа с файлами, сложные запросы к БД и правильная их обработка. Детальнее не могу, ибо дианон тгавля, место очень хорошее, супер начальник, но сам ступил, ещё подготовлюсь и снова дам о себе знать, место если освободится то может пригласят.
>>204972931>>204972865Из этих 320000 долбоебов 99% как раз. Так что все норм. Во всех профессиях так, оверпрайс дают только тем кто поднимется над коллегами
>>204973210Какой нахуй деанон по вопросам собеседования? ебанулся совсем уже? И это все надо джуном уметь делать?
>>204973330>>204973498На удивление, просто дохуярд спецов из смежных областей хотят на джуниоров JavaюКоторые работали раньше программерами в других языках, или админами, потом прозанимались на хороших курсах, имеют представление о всем, есть свои пет-проекты, владеют полным циклом разработки (core, lamda, stream-api, мультипоточность ), спринг (мвс, бут, дата), хибернет (jpa) , ну и разные maven, git - это понятное дело по умолчанию.И вот таких джунов оказывается охуеть сколько много рвется.Загляни на hh в раздел резюме, и охуей.Красавцы в ряд. И что-то мне взгрустнулось.
>>204974056какой-то днищный унылый троллинг уровня восьмиклассника. поссал на голову тебе между делом
>>204973924Ну кстати что-то похожее, только себя не принижают, и реально показывают хороший стек технологий, хз на практике правда что, но если проходили курсы, которые говорят, там нормально обучают, реально можно полумидлом выходить, но они пытаются джунить, и их блять просто дохуя.
>>204974841Сижу на кресле и пишу велостпеды. Параллельно работаю вообще не в той области. Собеседнуться ссу, слишком слабый. Вот и вся история, например.
>>204975096Эх помню как меня трясло перед первым собесом, я аж задыхался. И это был собес по скайпу. Но как только меня начали спрашивать, постоянно попадалось то что я как раз усиленно дрочил, и меня так понесло, что я ихнего сеньера поймал на ошибке, там все ахуели предложили мне 35к
Такой вопрос джавистам, хотя это вообще чисто общая тема безотносительно языка.Какая разница использовать исключения или обыкновенное ветвление?По сути насколько смог понять вникая в вопрос, эксепшены это просто еще один "слой" if-else технологии независимо от основного.Обоссыте эту точку зрения.
>>204975281В if-else ты сам кодишь все варианты условий, а эксепшены могут вылететь, могут не вылететь, могут вылететь но не те, которые ты ждешь и т.д.
>>204975344Какое-то слабое пояснение.И там и там - по какому-то (условию произвольной сложности) происходит либо прохождение исполнения дальше в {блок произвольной сложности}, либо переход в альтернативный {блок точно так же произвольной сложности}.Можно конечно сказать что исключение представляет собой объект, в отличие от условного перехода, но что мешает сконструировать что угодно в else-ветке?Короче надо что-то более внятное.
>>204975533>И там и там - по какому-то (условию произвольной сложности)...В случае исключений там могут быть условия которые определяются только в рантайме, например обращаемся к базе, а база не работает.В случае if-else все условия уже заранее статично описаны.>но что мешает сконструировать что угодно в else-ветке?В else ты не можешь описать условия зависящие от кода исполняемого где-то в подпрограмме или внутри вызова какого-то внешнего метода.А в случае исключений - тебе из этого внешнего метода придёт уже готовый объект который содержит в себе инфу, которую ты сможешь обработать.
>>204976049> обращаемся к базе, а база не работаетНу, всегда есть логика, которая указывает что эта база не работает. И есть противоположная. Да блин, даже выбрасывание исключения всегда производится из под if. Какая связь тут с компайл или ран-таймом?Вот насчет способа обработки тоже подумал уже, исключение можно пробросить вверх по вызову, что дает архитектурный костыль. Типа сообщить метод-юзеру способ которым метод может обосраться.
>>204976326>даже выбрасывание исключения всегда производится из под ifВ случае если у нас конструкция if-else, то на этапе компиляции прописано, какие условия должны быть true, какие false, для перехода в определенный блок. Даже если эти условия содержат в себе вызовы внешних методов. Все условия статично прописаны на этапе компиляции. Если true, то сюда, если false то сюда. Без вариантов.В случае с эксепшенами эти условия у нас не прописаны жостко, эксепшены могут прийти, а могут не прийти. Мы можем их ждать, а можем и не ждать - тогда эксепшен пробросится выше. Только в рантайме определится в какой блок перейдет выполнение кода.
>>204976846Окей, приведи пример кода который разрешим только эксепшенами и неразрешим if-elsами. Блочно само собой. Потому что пока мне кажется что ты городишь какую-то дичь. Весь код условий выбрасывания исключений их генерации и обработки тоже заранее предусмотрен при компиляции. То что могут прилетать любые исключения и их обработка производится путем полиморфного позднего связывания точно так же можно и if-elsaми сделать генерируя объекты одной ветки наследования.Ну либо я тупой конечно.
>>204977197Ну например, нативный метод может бросить исключение. Ты никак не сможешь залезть в нативный метод и проверить там какие-то условия, ты можешь только ждать исключение.
>>204977892Само собой, потому что он сдизайнен в среде, которая снабжена механизмом исключений, но это не значит что нельзя обойтись той информацией, которую этот же метод может возвращать через return.
>>204978003Иногда может произойти такое, о чем даже этот нативный метод может не знать и не предвидеть. Самый простой пример - нативный метод дергает за какую-то другую скомпиленную библиотеку, а её нет - возникает эксепшен, не помню какой, linknotfound или как-то так.
>>204977892Хотя да, ты победил. Ведь если метод должен возвращать например int, а уж тем более Boolean, то нет способа сообщить о сбое кодом ошибки, он же всегда может быть распознан как число в случае int. А специальный "канал связи" по которому происходит прием эксепшена дает такой обходной путь.Окей. а как тогда было до изобретения исключений?
>>204977197Вообще хер с этим нативным методом, вот ты пишешь про объекты и ветки наследования, т.е. речь идет про ООП.Представь себе код, где мы сохраняем объект в бд, бд само собой скрыта за абстракцией.private void save(Obj obj) { bd.save(obj);}Как мы тут обработаем условия когда база не работает? Мы прямо в этом методе будем коннектиться, к бд, напишем свой драйвер, будем прямо тут писать sql запросы? И чекать все ифами? Это нарушение всех принципов ООП. Т.е. исключения нужно рассматривать как часть ООП.
>>204972155нужно как минимум знать весь стек JEE и немного Spring. До этого можешь даже не пытаться в собеседования. Мимо синьйор девелопер собеседую джунов пачками, и сам проходил по этому пути.
>>204978713Я хуею с вас, сеньор помидор. И где все это говно надо осваивать? Дома на диване прямо все надо изучить прежде чем каким-то ссаным гребцом попасть к вам в галеру?
>>204978809Щас он нагуглит, ответит тебе.Этот сеньор пиздит, т.к. никому не нужно одновременно JEE и Spring, сейчас нужно либо одно, либо другое.
>>204979087То есть вот этот список из 23 позиций, всяких EJB JSP JSONон и прочего говна все надо знать джуну? И еще немножко Спринга? Ты хорошо подумал?
>>204975281Ещё одно пояснение.Смотри, в джаве все на уровне абстракций и слоев.Вот выделили ещё один уровень - возможных ошибок.Взяли основной класс - и от него унаследовали своих исключений.К примеру отказал сервер на стороне, отказал свой сервер, пропал интернет или что-нибудь ещё - это твой слой ошибок, ты их обрабатываешь, также можешь обработать в рамках этого слоя и стандартные ошибки - к примеру ошибки записи, и т.п. - просто поставить отлов всех ошибок какой-нибудь группы - и там написать обработчик. if else ты не сможешь обработать эти ошибки, т.к. только часть твоих, а часть в процессе выполнения может возникнуть других.
>>204980212Скоуп.Ифами мы обрабатываем условия своего скоупа.Эксепшенами обрабатываем условия других скоупов.
>>204980510Так JDK-джавы пропитано все эксепшинами,если это исключительная ситуация - то это эксепшин, т.е. такая философия.Ифы тоже никто не отменял, но там где ОШИБКА, там надо эксепшин, а там где логическая ветвь - там if
>>204980492Тоже раньше думал, нахуй он сперся, но на деле пиздец полезная вещь оказалась, сейчас все свои пэт проекты делаю в нем.Крайне легко, когда разберешься, и не паришься с кучей разных зависимостей, разных библиотек.JDBC, SERVLET, SPRING, HIBER, HUIBER и т.п., ручками заебешься цеплять все и собирать, а в мавене прописал -и все подтянулось как нужно.И ещё охуенности приходят, когда делаешь веб-приложение, и нужно деплоить куда-нибудь на томкэтт.е. чтобы нормально протестировать, нужно удалить старый деплой, очистить таргет, скомпилировать, упаковать все в варник, залить все на томкат, потом потестить и т.п.а в мавене ты настроил плагины один раз, дальше цепочку прописал в Идее, и одним нажатием кнопки все эти действия сделал. Правда охуенная вещь.Ну и создаешь приложение - берешь шаблон мавеновский под любую задачу - и тебе вся готовая структура папок, либ и т.п.экономит безумно время.
>>204982533Да там вкатываться не нужно особо, на ютюбе посмотри на русском пару роликов понятно будет все.качаешь, ставишь, прописываешь пути и все готово,в идее вроде свой мавен есть (а может нет) хз.Сновной файл настроек pom.xml - в нем все прописываешь, полистай интернет, дохуя материала по этой теме, все очень просто и изучается за 1 день
>>204981789Для меня это вообще по умолчанию всегда. Нужно чего-то написать на джаве - создали нужный archetype в maven, в нем зависимость на junit, log4j, инициализировали git - теперь можно написать первую строчку кода.
>>204983420Да, такая же хрень.Только гит не использую, ибо ещё в группе разрабов не программировал, хотя изучил уже полезности все.
>>204983540Да даже если один пишешь, то по-любому нужен контроль версий. Хотя-бы просто откатываться к предыдущему рабочему состоянию, если накодил хуйни какой-то.
>>204959870 (OP)У JTextField есть фильтры. Ты и сам можешь написать свой фильтр. А есть уже готовый DigitsFilter вроде.мимо недавно писал свинговый интерфейс
>>204983757Это обычная будничная хуйня прохрамиста который работает за деньги- контроль версий, логирование, юнит тесты, системы сборки.
>>204984007Я чет так и не смог оценить логирование - когда есть систем аута также юнит тесты - нахуй они на практике нужны, если не на вырост пишешь