1

私のプログラムでは、次の配列の文字列があります。プログラムを処理すると、出力に角かっこ [] が含まれますが、角かっこ [] なしで行う必要があります。それらを削除する方法について何か提案はありますか?

private final static String[] l0 = {"az","Fh md Br", "Inr Gt Cn", "Bl Gs he St st", "Mae is a nw Get", "Pam is a Ml rm", "Comr lab Pl Mt hs", "za"};

public static String sfuffle()
{
List<String> shuffled = new ArrayList<String>(Arrays.asList(phraseString));
    Collections.shuffle( shuffled );
    System.out.println(shuffled);// added only to have the output
    return  shuffled + "\n";    
}

出力:

[az, Mae is a nw Get, Bl Gs he St st, Fh md Br, za, Comr lab Pl Mt hs, Inr Gt Cn, Pam is a Ml rm]

私の望ましい出力は次のようになります。

az, Mae is a nw Get, Bl Gs he St st, Fh md Br, za, Comr lab Pl Mt hs, Inr Gt Cn, Pam is a Ml rm
4

3 に答える 3

3

使用するだけsubstring()です:

String str = shuffled.toString();
return str.substring(1, str.length() - 1) + "\n";

要望が多かったため、最初に括弧付きの文字列が表示される理由の説明を追加します。みたいなことを書くと

shuffled + "\n"

これはに変換されます

new StringBuilder().append(shuffled).append("\n")

StringBuilder文字列の連結と操作用に設計されたクラスです。オブジェクト (この場合は ) を追加すると、オブジェクトのメソッドshuffledによって返された文字列が追加されます。toString()さて、shuffled は であり、 で定義されArrayListたメソッドを使用します。ドキュメントから、フォームの文字列を返すことがわかります(それぞれがコレクションの要素です)。もちろん、は改行であり、直接表示されることはありません。toString()AbstractCollectiontoString()[e1, e2, ..., en]ei"\n"

于 2013-08-07T14:52:29.480 に答える
1

括弧はArrayListの実装から来ていますtoString() (MightyPorkが言ったように)

文字列の最初と最後の文字を削除するだけです

return str.substring(1, str.length() - 1) + "\n";

したがって、メソッドは次のようになります。

public static String sfuffle()
{
    List<String> shuffled = new ArrayList<String>(Arrays.asList(phraseString));
    Collections.shuffle( shuffled );
    String str = shuffled.toString();
    str = str.substring(1, str.length() - 1); //this line removes the brackets
    System.out.println(str); //for debugging
    return  str + "\n";    
}

括弧なしでリストを出力し、括弧なしで返します

于 2013-08-07T15:05:57.343 に答える