본문 바로가기
JAVA/배열

[java/split] int배열 string배열에 담기 / 배열의 길이를 특정할 수 없을 때는?

by java나유 2022. 7. 2.

문제

int ar1 [] = {1,2,3,4,5,6,7};

해당 배열에서 5이상의 값을 출력하여 새로운 배열로 만드세요.

 

int ar1[]은 숫자가 비교적 적어서 배열의 길이를 출력 할 수 있다지만, 

배열의 길이가 세기 힘들정도로 길어지거나, 추가로 인덱스값이 늘어나는 경우에는

그때마다 length를 수정하기 힘들겠죠?-?

 

그래서 이런 경우에는  int배열을 String배열로 변환+split메소드를 활용합니다.

 

public class array1 {

	public static void main(String[] args) {	
	array2 ay = new array2();
	}
}
class array2{
	private int ar1[]; //배열 선언 
	private int ea; //ar1의 배열 길이
	
	public array2() {
		
	this.ar1 = new int[] {1,2,3,4,5,6,7}; 
	this.ea = this.ar1.length;
	
	String newdata =""; //int 배열 String에 담기위해 선언 split은 int에 사용할 수 없
	
	for(int i=0;i<ar1.length;i++) { //배열 반복
		if(ar1[i]>=5) { //조건 생성
			newdata+=ar1[i]+","; //String에 +",추가하여 담아주기
		}
	}
	System.out.println(newdata);		
	}
}

 

결과값

인트 배열에 있는 숫자중 조건에 충족하는 숫자를 배열상태에서 String형태로  뽑아내기 성공~~!

 

그렇다면 이제 예쁘게 int 배열로 담아 볼까요?

 

public class array1 {

	public static void main(String[] args) {		
	array2 ay = new array2();
	}
}
class array2{
	private int ar1[]; //배열 선언 
	private int ea; //ar1의 배열 길이
	
	public array2() {
		
	this.ar1 = new int[] {1,2,3,4,5,6,7}; //this쓰려면 이렇게 선언
	this.ea = this.ar1.length;
	
	String newdata =""; //int 배열 String에 담기위해 선언 split은 int에 사용할 수 없
	
	for(int i=0;i<ar1.length;i++) { //배열 반복
		if(ar1[i]>=5) { //조건 생성
			newdata+=ar1[i]+","; //String에 +",추가하여 담아주기
		}
	}	
	String ar2[]=newdata.split(","); //저장된 문열을 ","로 구분하여 배열로 전환
	int ar2_ea = ar2.length; //바로위 배열의 길이값 선
	int oridata[]=new int[ar2_ea]; //int 배열선언
	
	for(int a=0;a<ar2_ea;a++) {
		oridata[a]=Integer.parseInt(ar2[a]); //ar2는 String이고 oridata는 int여서 Integer.parseIt사용 
	}
	System.out.println(Arrays.toString(oridata));
	}	
}

예쁘게 잘 출력 성공!

728x90

댓글