2013-02-23 7 views
-2

"R, a, b, b, i, t"를 인쇄하는 메소드를 호출하려고합니다. 빈 문자열 ("")이 전달되면 내 메서드는 아무것도 인쇄하지 않아야합니다.쉼표없이 인쇄하는 방법?

public static void printLetters(String a) { 
    if (a == "") 
     System.out.println(a); 
    else 
     for (int i = 0; i <= a.length() - 1; i++) { 
      char rabb = (a.charAt(i)); 
      System.out.print(rabb + ","); 

      if (i != a.length() - 1) { 
       System.out.print(" "); 
      } 
     } 
} 

문제는 지금 "r, a, b, b, it"입니다. 왜 그런지 모르겠습니다. if(i!=a.length()-1){이 (가) 마지막 쉼표를 제거하지 않는 것 같습니다.

+1

를 사용하여 위치에 따라 삭제하는 것입니다. –

+0

지금은 마지막 쉼표 뒤에 여분의 공백 만 인쇄합니다. 인쇄 명령이 완료되면 명령을 "실행 취소"할 수 없습니다. 마지막 쉼표를 전혀 인쇄하지 않도록 코드를 변경해야합니다. –

답변

0

이와 비슷한 방식으로 ??

   char rabb = (a.charAt(i)); 
      if(i==a.lenght()-1){ 
      System.out.print(rabb + ","); 
      } 
      else 
      System.out.print(rabb); 

또한 문자열 비교가 잘못되었습니다. equals 메서드를 사용하여 문자열을 비교합니다.

if ("".equals(a)) 

당신은 또한 .equals 문자열이 비어있는 경우,

if (a.isEmpty()) 
3

첫째, 문자열 비교 ==를 사용하지 않을 확인 String.isEmpty()을 사용할 수 있습니다 : 당신에

if ("".equals(a)) 

를 루프, 문자를 추출하여 인쇄하십시오. 그런 다음 문자열의 끝에 있지 않다는 것을 감지하면 쉼표와 공백을 인쇄하십시오.

char rabb = (a.charAt(i)); 
System.out.print(rabb); 

if (i != a.length() - 1) { 
    System.out.print(", "); 
} 
0

쉽게는 혼수는 마지막 문자이기 때문에, 마지막 문자를 삭제 그냥 당신의 공백을 수정하시기 바랍니다 String 클래스의 방법

String myString = "a,b,c,d," 

String newString = myString.subString(0,myString.length()-2); 
0
static String comma(String a) { 
    if (a.length() == 0) 
     return ""; 
    char[] c = new char[a.length()+a.length()-1]; 
    for (int i = 0; i < a.length()*2-2; i+=2) { 
     c[i] = a.charAt(i/2); 
     c[i+1] = ','; 
    } 
    c[c.length-1] = a.charAt(a.length()-1); 
    return new String(c); 
}