ㅤㅤㅤ
String을 받아서 문자인지 숫자인지 구별하는 방법 본문
public static boolean isNumeric(String string) {
if(string.equals("")){//문자열이 공백인지 확인return false;} return string.matches("-?\\d+(\\.\\d+)?"); }
주어진 문자열이 숫자로 이루어져 있는지, 즉 숫자로 변환할 수 있는 문자열인지, 알아내야 할 때가 있습니다.
"124" 또는 "5425.8878" 또는 "0.0f" 이런 문자열은 숫자가 될 수 있고
"XYZ000" 이런 것은 당연히 숫자가 될 수가 없습니다.
다음의 isStringDouble(String s) 이라는 메소드로, 이런 판단을 쉽게 할 수 있습니다.
문자열이, 숫자(10진수 실수/정수)인지 아닌지 판단 예제
파일명: Foo.java
public static void main(String[] args) {
String str = "123";
if (isStringDouble(str))
System.out.println("숫자입니다.");
else
System.out.println("숫자가 아닙니다.");
}
public static boolean isStringDouble(String s) {
try {
Double.parseDouble(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
isStringDouble() 메소드는, 파라미터(인수)로 받은 문자열이, 실수로 변환될 수 있는지 여부를 확인하는 것입니다. 정수도 실수에 포함되기에, 정수인지도 판단할 수 있습니다.
우선 Double.parseDouble() 로 문자열을 실수로 변환해서, 에러가 나면 숫자로 아닌 것으로 판단하여 false(거짓)를 반환하는 식입니다.
그런데
0xFF
이런 16진수는 숫자라는 것을 알지 못하는 한계가 있습니다. 따라서 위의 방법은 10진수 숫자 여부만을 판단할 수 있습니다.
위의 예제, 컴파일 및 실행 결과:
숫자입니다.
D:\Z>
자바에서 숫자인지 체크하는 간단한 방법입니다.
* StringUtil.java
public static boolean isNumeric(String s) {
try {
Double.parseDouble(s);
return true;
} catch(NumberFormatException e) {
return false;
}
}
아래처럼 사용하면 됩니다.
logger.info(“숫자 오류”);
}
'プログラミング > JAVA' 카테고리의 다른 글
TODO Task 기본사용 참고자료 (0) | 2017.06.08 |
---|---|
라이브러리 추가하는 여러가지 방법 – Eclipse 사용 (0) | 2017.06.07 |
강제로 Exception 발생시키는 방법 (0) | 2017.06.07 |
SimpleDateFormat 기본 자료 (0) | 2017.06.07 |
이클립스에서 클래스다이어그램 만들기(ObjectAid) (0) | 2017.06.07 |