JAVA - 문자열이 숫자인지 판별하기

GARY·2022년 4월 21일
0
post-custom-banner

API로 값을 받아 DB에 값을 넣는 경우 데이터 검증 후 INSERT 해야 한다. 이럴 때 사용할 수 있는 전달 받은 문자열이 숫자인지 판별하는 방법을 알아보자.

문자열 숫자 판별 방법

1> 내장함수를 사용하지 않는 경우

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);
	}
}

2> 내장함수 isDigit()을 사용하는 경우

  • Character 클래스의 isDigit()메서드 : 숫자면 true, 문자면 false 리턴
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);
	}
}

위 소스는 테스트용으로 만든 게 아니고 회사에서 만들던 코드를 부분만 가져온 거라 해당 데이터가 무엇인지 자세한 설명은 안 쓸 거다.
판별하는 부분만 참고하면 된다.

profile
개발하는 개린이 개리
post-custom-banner

0개의 댓글