2013-02-23 3 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)) 

вы также можете использовать String.isEmpty(), чтобы проверить, является ли строка пустой

if (a.isEmpty()) 
3

Во-первых, никогда не используйте == для сравнения строк используйте .equals:

if ("".equals(a)) 

в вашей цикл, извлеките символ и распечатайте его. Затем, если вы обнаружите, что не находитесь в конце строки, напечатайте запятую и пробел.

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

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

Легче является удаление последнего символа, так как кома является последним символом, просто удалите его на основе позиции с помощью методов класса Строка

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); 
} 
Смежные вопросы