슈가
51
2020-10-06 21:16:47 작성 2020-10-06 22:09:37 수정됨
6
198

배열로 된 목록들 불러올 때 마지막에는 쉼표를 떼고 싶은데 if문 조건을 어떻게 해야할까요?


String[] source = request.getParameterValues("source");

String scText = "";

for(int k=0; k<source.length; k++) {

scText += source[k] + ",";

if(k==source.length-1) {

scText += source[k] + "";

}

}

source는 이전 페이지에서 form으로 받아온 체크박스들을 배열로 담아서 둔 거예요. 

input으로 만든 체크박스의 name이 source 예요.


그리고 scText에 체크된 소스들을 마요네즈, 칠리, 스리라차 이런 식으로 끝에는 쉼표가 붙지 않도록 담고 싶은데

지금은 마요네즈, 칠리, 스리라차, 이런 식으로 끝에도 쉼표가 붙어요 ㅠㅠ

체크한 소스만 담도록 하는 것까지는 완료했는데, 뒤에 별 것도 아닌 쉼표 때문에 애를 먹고 있네요 ㅠㅠ


if문의 조건을 어떻게 고쳐야 할까요? 조언 부탁드려요 ㅠㅠ


0
  • 답변 6

  • 당컴
    22
    2020-10-06 21:42:12

    for문 조건이 배열길이보다 작게 걸었났는데

    어떻게 if문에서  k가 배열길이가 같을까요??

    물어보기보다는 조금더 생각하시고 부딪히시는게 답인거 같네요

  • 슈가
    51
    2020-10-06 22:06:22 작성 2020-10-06 22:09:07 수정됨
    이 글 올리고  k==source.length-1로 수정 했었는데 그래도 안돼서 여쭤봤어요.
    그냥 substring으로 잘랐습니다.ㅋ

    if문으로 할 수 있나 해서 글 올린건데 안되나보네요.ㅋㅋㅡㅜ
  • RedVelvet
    370
    2020-10-06 22:23:46

    이렇게 바꾸면 되시나요?

    for(int k=0; k<source.length; k++) {
    	if(k<source.length-1) {
    		scText += source[k] + ",";
    	}
    
    	else if(k==source.length-1) {
    		scText += source[k] + "";
    	}
    }


  • 슈가
    51
    2020-10-06 22:25:09 작성 2020-10-06 22:26:28 수정됨

    해결 했습니다!

    +) 헉 위에 달아주셨군요 

    for(int k=0; k<source.length; k++) {

    if(k==source.length-1){

    scText += source[k] + "";

    break;

    }

    scText += source[k] + ", ";

    }

    이렇게 해서 해결했는데 레드벨벳님 코드도 잘 되네요 ㅎㅎ 감사합니다!

  • 한국은역시자바
    485
    2020-10-06 22:29:35

    String[] source = request.getParameterValues("source");

    String scText = String.join(",", Arrays.asList(source));


  • 슈가
    51
    2020-10-06 22:33:21

    헉 이런 간단한 코드도 있었군요,,,, 아직 한참 덜 배웠네요 ㅠㅠ 감사합니다!

  • 로그인을 하시면 답변 을 등록할 수 있습니다.