Как проверить, является ли объект конвертируемым в другой тип? - PullRequest
6 голосов
/ 12 января 2011

Допустим, у меня есть два строковых объекта: "25000.00" и "1234", которые моя программа получает во время выполнения. Как проверить, что они castable могут быть преобразованы в тип double и int соответственно? Есть ли в Java метод или ключевое слово, которое это уже делает?

Ответы [ 3 ]

8 голосов
/ 12 января 2011

Для этого можно использовать статические методы Integer.parseInt или Double.parseDouble.Каждый из этих методов принимает String и преобразует их в int или double в зависимости от ситуации.Вы можете проверить, является ли строка конвертируемой, вызвав эту функцию.Если преобразование возможно, оно будет выполнено.В противном случае методы выдают NumberFormatException s, которые вы можете поймать и ответить.Например:

try {
    int value = Integer.parseInt(myString);
    // Yes!  An integer.
} catch (NumberFormatException nfe) {
    // Not an integer
}

Надеюсь, это поможет!

3 голосов
/ 12 января 2011

Просто чтобы уточнить: String это никогда с возможностью преобразования в Double или Integer.

Однако вы можете разобрать строку как числоиспользуя методы Double.parseDouble и Integer.parseInt.Если они не могут быть разобраны, тогда будет выброшено NumberFormatException.Вы можете поймать это и обработать это соответствующим образом.

Casting и синтаксический анализ - это совершенно разные вещи.

EDIT: я вижу, @BalusC отредактировалвопрос и изменил «бросить» на «преобразовать».Полагаю, мои комментарии сейчас излишни:)

0 голосов
/ 25 мая 2013

В C # есть метод проверки, может ли объект быть приведен к другому объекту. Но, думаю, достаточно Integer.parseInt или Double.parseDouble.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...