У меня есть небольшой метод, который, помимо прочего, также преобразует строку в целое число. Поскольку строка является параметром метода, я хочу убедиться, что эта строка может быть конвертируемой. Поэтому я просто задавался вопросом, что будет самым безопасным и/или самым быстрым способом.
Версия A: просто оставьте это как есть и возьмите на себя риски (которых я пытаюсь избежать)
public static int stringToInt(String param) {
return Integer.valueOf(param);
}
(с точки зрения скорости, какая разница в версии B и C?)
Версия B: выхватить исключение
public static int stringToInt(String param) {
try {
return Integer.valueOf(param);
} catch(NumberFormatException e) {
return -1;
}
}
Версия C: проверьте каждую букву строки, чтобы увидеть ее, если это цифра или нет
public static int stringToInt(String param) {
for(char c : param.toCharArray()) {
if(!Character.isDigit(c))
return -1;
}
return Integer.valueOf(param);
}
Обратите внимание, что параметр должен быть положительным числом, а значение -1 должно быть "значением ошибки" в моей маленькой программе, другими словами, все три версии методов будут отлично работать в моей программе.
Я очень открыт для любого другого предложения, которое вы можете мне дать, поэтому не стесняйтесь создавать свою собственную версию, если считаете, что ваша лучше.
Благодарим вас за поддержку.