Строка на входе, нужно узнать является ли числом

299
13 февраля 2017, 14:20
     static boolean itsNumber(String s ){
           if (s.length() == 0) return false;
            char[] cha = s.toCharArray();
        boolean flag = false;//если больше одной точки то тру
            for(int i =0; i < cha.length;i++)
            {
                char c = cha[i];
                //если символ "-" не первый  или символ является не числовым ... и дальше пытаюсь обработать наличие точки, но не могу
                if((i!=0 && c == '-') || (!Character.isDigit(c)) || flag && (c=='.' && (i==0||i==cha.length)))    return false;
                if((c=='.' && (i==0||i==cha.length))) flag = true;//ставлю флаг true, если уже точка поймана одна, и она не первый и не последний символ.
            }
    return true;
}

Обработка точки не работает правильно, голову сломал. Не могу понять как написать надо. Мне нужно чтобы double обработал как число, а программа из-за точки пишет, что это стринг. Помогите обработать корректно double.

Answer 1
public static boolean itsNumber(String s) {
    try {
        Double.parseDouble(s);
    } catch (NumberFormatException e) {
        return false;
    }
    return true;
}
Answer 2

можно регуляркой проверить еще

static boolean itsNumber(String s ){
   return s.matches("\\d+\\.\\d+") || s.matches("\\d+")
}
READ ALSO
Hibernate. Join одного из полей сущности

Hibernate. Join одного из полей сущности

Начинаю изучать hibernate, возник вопрос

236
Как мне изменить текст путем нажатия кнопки? [требует правки]

Как мне изменить текст путем нажатия кнопки? [требует правки]

Как мне изменить текст путем нажатия кнопки?

292
Убрать отступ от SelectBox

Убрать отступ от SelectBox

Гуглил, пытался методом тыка, читал, искал, но так и не смог найти, как убрать отступ от SelectBoxТ

252
Как написать бегущую строку

Как написать бегущую строку

Дело в том что у меня есть плеер и над ним должна идти бегущая строкаПерепробовал все возможные варианты

408