자바 학습 & 복습 14일차 - 메서드 생성 예시문제

728x90

숫자 섞기 메서드 생성 

int 배열을 매개변수로 줄 때 그 배열의 숫자를 자동으로 섞는 메서드 생성

출력문 : [6, 7, 9, 4, 5, 2, 8, 1, 3]

  • 숫자 배열을 섞는 알고리즘은 동일함. 같은 알고리즘을 메서드로 생성하여 재사용이 가능한 코드로 만듬
public static void main(String[] args) {
    int[] original = {1,2,3,4,5,6,7,8,9};
    ArrayShuffle as = new ArrayShuffle();

    as.shuffle(original);
    }
}
	class ArrayShuffle{
//	메서드
    public void shuffle(int[] a) {
        Random random = new Random();
        for(int i = 0; i<a.length; i++) {
            int ran = random.nextInt(a.length);
            int tmp = a[0];
            a[0] = a[ran];
            a[ran] = tmp;
        }
        System.out.println(Arrays.toString(a));
    }
}

문자열 숫자 체크기

주어진 문자열이 모두 숫자이면 true, 문자가 포함되있으면 false, 공백이면 null 출력

출력값: false

	public static void main(String[] args) {
		Number.check("1234o0");
		}
	}
	class Number{
		
		public static void check(String str) {
			int isum = 0; //빈 int 값 생성
			for(int i = 0; i<str.length(); i++) {
				char ch = str.charAt(i); //주어진 String 값을 char 값으로 변환
				if('0' <= ch && ch <= '9') { //주어진 char값이 0-9까지의 값이 아니라면
					isum++; //빈 int값에 +1 누적합
				}
			}
			if(isum == 0) { //빈 int 값이 공백이라면 null
				System.out.println("null");
				System.exit(isum); //null을 프린트하고 종료
			}  //종료가 안될 시 마지막 조건문도 수행하여 true false를 출력하기 때문에 종료시켜야 함
		System.out.println(isum == str.length() ? true : false);
//		삼항연산자를 사용하여 조건이 맞을 시 true 아니면 false
	}
}
728x90