-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
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 に答える
0

カンマは最後の文字であるため、最後の文字を削除する方が簡単です.Stringクラスのメソッドを使用して位置に基づいて削除するだけです.

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

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