Самое простое, о чем я могу подумать, это java.util.Scanner
.Однако для этого подхода требуется новый экземпляр Scanner для каждой строки.
String data = ...;
Scanner n = new Scanner(data);
if(n.hasNextInt()){//check if the next chars are integer
int i = n.nextInt();
}else{
}
Затем вы можете написать шаблон регулярного выражения, который вы используете для проверки строки (сложный для сбоя слишком больших значений), а затем вызвать Integer.parseInt () после проверки строки на это.
Pattern p = Pattern.compile("insert regex to test string here");
String data = ...;
Matcher m = p.matcher(data);
//warning depending on regex used this may
//only check part of the string
if(m.matches()){
int i = Integer.parseInt(data);
}
Однако оба из них анализируют строку дважды, один раз, чтобы проверить строку, и второй раз, чтобы получить значение.В зависимости от того, как часто вы получаете недопустимые строки, перехват исключения может быть быстрее.