На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Числа из строки , Нужно вывести числа из строки
    Привет ребятки :D

    Подскажите пожалуйста,как решить такую вот задачку: дана строка String str = "12.3fkd.4.-39rj4a33"
    Как из этой прелести вывести ЧИСЛА ( не просто цифры,а числа дробные,отрицательные) и при этом не применять регулярные выражения.
    :rolleyes:
      Пройтесь по строке, выясняя относится ли текущий символ к цифровому (0-9, знак: +/-, точка/запятая), и если относится - формировать текущее найденное число. Если нет, значит, предыдущее найденное число закончилось.
      тут еще есть пара ньюансов, вроде того, что знак (если он есть) может бть только один, и стояить первым символом, а точка/запятая - тоже только одна может быть.
        а меня всегда радуют задания с дыркой от бублика вместо условий :)
        ExpandedWrap disabled
          String inputString = "12.3fkd.4.-39rj4a33";
          Map<String, Double> foundNumbers = new HashMap<>();
           
          for (int gap = 1; gap < inputString.length(); gap++)
              for (int pos = 0; pos < inputString.length(); pos++)
                  try {
                      String fragment = inputString.substring(pos, Math.min(pos + gap, inputString.length()));
                      foundNumbers.put(fragment, Double.parseDouble(fragment));
                  } catch (Exception ignored) {
                  }
           
          foundNumbers.entrySet().forEach(
              entry -> System.out.println(entry.getKey() + " = " + entry.getValue()));
          wind вообще то обработкой исключений искать числа не лучшая идея, поскольку выброс самого исключения дороговатая операция
            d_k, не воспринимай этот кусок кода серьезно
              я бы простейший конечный автомат нарисовал
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0344 ]   [ 16 queries used ]   [ Generated: 16.04.24, 19:37 GMT ]