Используйте метод toInteger()
для преобразования String
в Integer
, например,
int value = "99".toInteger()
Альтернатива, которая исключает использование устаревшего метода (см. Ниже):
int value = "66" as Integer
Если вам необходимо проверить, можно ли преобразовать String
перед выполнением преобразования, используйте
String number = "66"
if (number.isInteger()) {
int value = number as Integer
}
Grails
Если вы преобразуете параметр запроса в контроллере Grails, есть еще лучший способ
Integer paramValue = params.int('paramName')
Одной из приятных особенностей этого метода является то, что он безопасен, то есть если параметр не может быть преобразован в Integer
, он возвращает ноль, а не вызывает исключение.
Обновление устаревших версий
В последних версиях Groovy один из методов toInteger()
устарел. Следующее взято из org.codehaus.groovy.runtime.StringGroovyMethods
в Groovy 2.4.4
/**
* Parse a CharSequence into an Integer
*
* @param self a CharSequence
* @return an Integer
* @since 1.8.2
*/
public static Integer toInteger(CharSequence self) {
return Integer.valueOf(self.toString().trim());
}
/**
* @deprecated Use the CharSequence version
* @see #toInteger(CharSequence)
*/
@Deprecated
public static Integer toInteger(String self) {
return toInteger((CharSequence) self);
}
Вы можете принудительно вызывать не устаревшую версию метода, используя что-то ужасное, например:
int num = ((CharSequence) "66").toInteger()
Лично я предпочитаю:
int num = 66 as Integer