2015-02-03 3 views
0

배열의 문자열을 만들려고하는데 {1, 2, 3, 4, 5, 6, 7}하지만 올바른 대답을 얻을 수없는 것 같습니다. 그것을 실행하십시오.배열의 문자열을 만드는 방법

int [] arr = {1, 2, 3, 4, 5, 6, 7}; 
String s = " "; 

for(int i = 0; i < arr.length; i++){ 
    s = (arr[i] + ", "); 
} 

System.out.println(s); 

실제로 1, 2, 3, 4, 5, 6, 7

아래 코드 나을주는 누군가가 나에게 설명시겠습니까 이유를 얻을 호핑 때 내가 할 대답은 7 정답이지만 문자열을 사용할 때는 위의 코드를 수정해야합니다. 이것에 코드

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

for(int i = 0; i < arr.length; i++){ 
    System.out.print(arr[i] + ", "); 
} 
+1

()'? – Everv0id

+0

은 교체'='와'+ ='코드의 기술 디버깅, 루프에서 같은 문자열을 구성 할 때, 대신'StringBuilder'을 사용하는 것 외에도 – Yazan

+0

. Java'String' 객체는 불변이며, 중간 복사본을 많이 만들고 버리는 것은 비용이 많이 든다. 'StringBuilder'는 당신이 필요로하는 모든 문자를 추가 한 후'String'으로 바꿀 수 있습니다. 너무 감사 작동 Everv0id @ 오타 – chrylis

답변

3

당신은 루프가 s이 배열의 마지막 값이됩니다 이루어집니다 그래서 때마다 반복 s = arr[i] + " "s을 다시 초기화된다.

은 첫 번째 코드 예 s += String.valueOf(arr[i]) + " " 대신 =

+0

감사를 구축 멀리하기 위해 노력하고있어 프로그래밍에 새로 온 이후 닫 투표 마감 이유로 당 – stargazer

+0

@stargazer : 완벽하게 정확하기 위해서는 그런 식으로 작동 문자열 아닌가요. 그렇게 할당 연산자 '='가 작동합니다. – mattias

0

변경 :

for(int i = 0; i < arr.length; i++){ 
    s += (arr[i] + " "); <<---- you we're missing the '+' 
} 
1

당신은 필요는 문자열로을 추가합니다. 즉, 각 번호의 문자열을 다시 할당하는 대신 (= 사용) 마지막에 다른 번호 (+= 사용)를 추가해야합니다.

for (int i = 0; i < arr.length; ++i){ 
    s += arr[i] + " "; 
} 

또는 더 간결 :

StringBuilder sb = new StringBuilder(); 
for (int n : arr) { 
    s.append(n).append(' '); 
} 
String s = sb.toString(); 

또는 사용 :

for (int n : arr) { 
    s += n + " "; 
} 

또는 원하지 않는 경우는 StringBuilder 사용, 성능에 대한 걱정 명으로 해제했다하세요 Arrays.toString(arr) 모든 것을 할 수 있습니다.

0

s = (arr[i] + " ");을 사용하는 경우 문자열을 덮어 씁니다.

더 나은 사용 s += (arr[i] + " "); 또는 s = s.concat(arr[i] + " ");

0

문제를 +=를 사용할 필요가 s에 모든 값을 추가하려면 개체의이 루프의 각 반복에 우선입니다 ... 그것이 마지막으로 무시 된 값인 7을 인쇄하는 이유입니다. 사용할 수있는 모든 값을 인쇄하려면 s = s + (arr [i] + ","); 당신이 값이 어레이에서 그것을 얻을 때마다 인쇄되게하려면

0

대신의 for 루프 후, 당신의 for 루프의 내부 System.out.println(s);을 넣어해야합니다. 한 줄에 모두 인쇄하려면 s.concat(arr[i] + ", ");을 사용해야합니다. 그러면 배열의 값이 문자열 끝에 추가됩니다.

0

기본적으로 원하는 것을 찾으려면 s = (arr[i] + ", ");s = s.concat(arr[i] + ", ");으로 변경하십시오. 그러면 목록이 출력됩니다. 더보기 좋게하려면 문자열의 문자 수를 가져 와서 하위 쉼표를 사용하여 마지막 쉼표를 제거하십시오.

이 정보가 도움이되기를 바랍니다.어떻게 Arrays.toString`에 대한

관련 문제