마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

배열안의 값들을 for문을 통해 다른 변수에 넣을때...

0 추천
String dataArray[];

String removeChar3;

 

for(int i = 0; i < dataArray.length; i++){

removeChar3 = dataArray[i].replaceAll(remove3, "");

}

 

안녕하세요.

위에코드처럼 dataArray 라는 배열안에 들어있는 값들을 for문을 통해 하나하나

다른 변수(removeChar3)로 넣고 싶은데

이 다른변수 removeChar3을 배열형태로 선언하면 안드로이드 스튜디오에서 문법이 틀리다고 나오고.

그냥 String 타입으로 선언을 해야지만 문법이 맞다고 나옵니다.

 

제 짧은 생각으로는 배열이라는 그릇에 담겨있는 값들을 다른 그릇으로 옮겨 담으려면,

그 넘겨받는 변수도 배열형태여야 할거 같은데.. 잘 이해가 되지 않아 질문 드립니다.

 

그리고 만약 위에 코드처럼 배열에 있는 값들을 for문을 통해 일반 String으로 값을 받은 후에

 

나중에 이 String 변수 안에 받은 값을을 for문을 통해 배열안에 들어있는 값들처럼 처리할 수 있는건지도 문의드립니다.

 

감사합니다.
케이엠팍 (250 포인트) 님이 2021년 12월 29일 질문

2개의 답변

0 추천

어떻게 배열을 선언하셨는지 모르겠지만, 배열을 사용하시는데는 문제가 없는 것으로 보입니다.

 아래는 정상적으로 잘 동작하는 코드입니다.

        String[] newStrings = new String[dataArray.length];

        for (int i=0; i < dataArray.length; i++) {
            newStrings[i] = dataArray[i].replaceAll(remove3, "");
        }

 

참고로, 자바나 코틀린에서는 배열보다는 List가 Collection과 Iterable을 사용할 수 있기 때문에 좀 더 선호되는  구조입니다.

        final List<String> strings = new ArrayList<>();
        for (String data : dataArray) {
            strings.add(data.replaceAll(remove3, ""));
        }

 

spark (225,780 포인트) 님이 2021년 12월 29일 답변
spark님이 2021년 12월 29일 수정
이제 질문의 포인트를 알겠네요. 아랫분이 말씀하셨듯이 String[] 타입은 String의 배열입니다. 배열은 같은 타입을 여러개 가지는 타입이므로 String[]의 각각의 타입은 String이 되기 때문에 헷갈리셨던 것 같아요.
0 추천

개념 정리를 위한 답변드려봅니다.

 

removeChar3 = dataArray[i].replaceAll(remove3, "");
 

위에 표시된 위치에서 dataArray 배열의 값중 i번째 해당하는 값 1개를 확인하기 때문에 String 변수가 문법적으로 맞습니다.

 

 

> removeChar3 를 배열형태로 선언 시

String dataArray[];
String removeChar3[];

for(int i = 0; i < dataArray.length; i++){
    removeChar3[i] = dataArray[i].replaceAll(remove3, "");
}

이처럼 작성하여 배열의 내용을 하나씩 옮겨준다고 생각하시면 됩니다.  

removeChar3 배열의 사이즈는 dataArray 배열의 사이즈보다 크거나 같아야 합니다. 

익명 님이 2021년 12월 29일 답변
...