API로 값을 받아 DB에 값을 넣는 경우 데이터 검증 후 INSERT 해야 한다. 이럴 때 사용할 수 있는 전달 받은 문자열이 숫자인지 판별하는 방법을 알아보자.
String strData = request.getParameter("data").toString();
String[] jobData = strData.split(",");
char mainTmp;
String check = "T";
if(jobData.length == 4){
String mainSlope = jobData[1].toString();
//기울기가 숫자인지 판별
for(int i=0; i<mainSlope.length(); i++){
mainTmp = mainSlope.charAt(i);
//문자가 0~9가 아닐 경우
if(!('0' <= mainTmp && mainTmp <= '9')){
check = "F";
}
}
if(check == "T"){
//기울기 모델 추가
model.put("mainSlope", Integer.parseInt(jobData[1].toString()));
model.put("subSlope", Integer.parseInt(jobData[2].toString()));
model.put("slopeGrade", Integer.parseInt(jobData[3].toString()));
sgmsManageService.insertDataSlope(model);
}
}
String strData = request.getParameter("data").toString();
String[] jobData = strData.split(",");
char mainTmp;
String check = "T";
if(jobData.length == 4){
String mainSlope = jobData[1].toString();
//기울기가 숫자인지 판별
for(int i=0; i<mainSlope.length(); i++){
mainTmp = mainSlope.charAt(i);
//숫자가 아니라면 false 반환
if(Character.isDigit(mainTmp) == false){
check = "F";
}
}
if(check == "T"){
//기울기 모델 추가
model.put("mainSlope", Integer.parseInt(jobData[1].toString()));
model.put("subSlope", Integer.parseInt(jobData[2].toString()));
model.put("slopeGrade", Integer.parseInt(jobData[3].toString()));
sgmsManageService.insertDataSlope(model);
}
}
위 소스는 테스트용으로 만든 게 아니고 회사에서 만들던 코드를 부분만 가져온 거라 해당 데이터가 무엇인지 자세한 설명은 안 쓸 거다.
판별하는 부분만 참고하면 된다.