JAVA/배열
[java/split] int배열 string배열에 담기 / 배열의 길이를 특정할 수 없을 때는?
java나유
2022. 7. 2. 18:05
문제
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