Я чувствую себя глупо, что не могу понять это, но это действительно начинает меня бесить.
Я просто пытаюсь убедиться, что строка содержит только цифры, используя string.match(regex)
.Если он содержит какие-либо нечисловые символы, жестко запишите его 9999999.
Вот мой код.По сути, я проверяю, не содержит ли результаты, извлеченные из ResultSet
moduleResults, нечисловые символы, прежде чем использовать его в setEndPointID
, который принимает long в качестве параметра.trim()
там, потому что в id_amr_module
часто есть начальные пробелы, и я не хочу, чтобы они отбрасывали совпадение с регулярным выражением.Я также попробовал регулярное выражение [0-9] * безуспешно.
String strEndPointID = moduleResults.getString("id_amr_module");
strEndPointID.trim();
if(strEndPointID.matches("\\d*")){
msiRF.setEndpointID(moduleResults.getLong("id_amr_module"));
}
else{
long lngEndPointID = 99999999;
msiRF.setEndpointID(lngEndPointID);
}