티스토리 뷰

728x90
반응형

[6-22] 다음과 같이 정의된 메서드를 작성하고 테스트하시오.


 

풀이

1) isNumber() 메서드 생성

- 인스턴스 변수와 관계없는 매개변수로 작업가능한 static 메서드(class메서드) 생성!

- isNumber메서드 내 매개변수 (String str) 입력

public static boolean isNumber (String str) {


	return true; 
 }

2) isNumber()메서드 안에 아래 조건 생성

public static boolean isNumber (String str) {
	if(str==null || str.equals(""))
    	return false;

	return true; 
 }
  • str.equalsstr =="" 의 차이점
    - str.equals : 내용이 같은지 비교. 예문에는 내용에 빈문자열 ""이라면 false를 반환하는 것이기 때문에, str.equals 사용.
    - str =="" : 주소가 같은지 비교 ( 즉, 같은 매개변수에 ""가 저장이 되어있는지 비교). 

3) isNumber()메서드 안에 아래 기능 생성

public static boolean isNumber (String str) {
	if(str==null || str.equals(""))
    	return false;


		for(int i=0; i<str.length(); i++) { 
		char ch = str.charAt(i); //반복문과 charAt(int i)로 문자열에서 한 문자씩 차례대로 읽어와 char 타입의 변수 ch에 저장한다.
		  if(ch<'0' || ch>'9') { //읽어온 문자(ch) 가 숫자가 아니면 false 를 반환한다.
		  return false; }
		}
	return true; 
 }
  • 문자를 숫자로, 숫자를 문자로 변환 가능
    ex. '3' -> 3
    ex. (char)3 -> '3'

 

정답
package pkg1;
public class Ex6_22 {
	
	public static boolean isNumber (String str) {
		if(str==null || str.equals(""))
			return false;
		
		for(int i=0; i<str.length(); i++) {
			char ch = str.charAt(i);
				if(ch<'0' || ch>'9') {
					return false;
				}
		}
		return true; 
	}
	
	public static void main(String[] args) {
		String str = "123";
		System.out.println(str+"는 숫자입니까?"+isNumber(str));
		
		str = "1234ㅇ";
		System.out.println(str+"는 숫자입니까?"+isNumber(str));
	}
}

 

728x90
반응형
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday