-3

我正在尝试调用一种方法来打印“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){无法消除最后一个逗号。

4

4 回答 4

3

首先,永远不要==用于字符串比较,使用.equals

if ("".equals(a))

在您的 for 循环中,提取字符并仅打印它。然后,如果您检测到您不在字符串的末尾,则打印一个逗号和一个空格。

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

if (i != a.length() - 1) {
     System.out.print(", ");
}
于 2013-02-23T01:11:40.777 回答
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()) 
于 2013-02-23T01:10:26.363 回答
0

比较简单的是删除最后一个字符,因为逗号是最后一个字符,使用String类方法根据位置删除即可

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

String newString = myString.subString(0,myString.length()-2);
于 2013-02-23T01:14:12.570 回答
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);
}
于 2013-02-23T01:23:18.937 回答