Как проверить, соответствует ли строка этому формату:
<number>,<number>,<number>
например.
3.0, 87546,0.8273456
т.е. три значения через запятую, которые могут быть проанализированы как двойные. Иногда строка будет содержать что-то еще (например, Text,More text,42
или anything, really
), и в таком случае мне просто нужно проигнорировать это и перейти к анализу следующей строки.
Сейчас я просто пытаюсь проанализировать строку, как будто она соответствует ожидаемому формату, и перехватить любое результирующее исключение. Что умнее и дешевле это сделать? Надеюсь, не выбрасывая / ловить исключения?
String[] parsedLine = line.trim().split(",");
if (parsedLine.length == 3) {
try {
xCoordinate = Double.parseDouble(parsedLine[0]);
yCoordinate = Double.parseDouble(parsedLine[1]);
groundElevation = Double.parseDouble(parsedLine[2]);
} catch (NumberFormatException nfe) {
//This line does not contain numbers exclusively.
//Assume it's a header/comment.
//Do nothing.
}
} else {
//This is not in the expected x,y,z format.
//Assume it's a header/comment.
//Do nothing.
}