0
/**
     * get a formatted string with information about a competition.
     * 
     * @return String String with information about a competition.
     * 
     * The output should be in the following format:
     * <pre>
     * Rodent's Information:
     * Rat RFID 787878787
     * Gender: F
     * Vaccination status: false
     * 
     * Maze Information:
     * Start Time: 00:00:00
     * End Time: 01:00:05
     * Actual Time: 01:00:05
     * Contest Time: 00:59:30
     * </pre>
     * 
     */
    public String toString()
    {
        // your code here, replace the "X" and -9 with appropriate
        // references to instance variables or calls to methods
        String output = "Competition Description: " + this.desc
            + "\nCompetition Count: " + this.count + "\n";
        output += "Competition Results:" + "\n";
        // loop through the array from beginning to end of populated elements
        for (int i = 0; i < this.nextPos; ++i)
        {
            this.results[i].getRFID();
            this.results[i].getGender();


            // get toString() for each result


        return output;
    }

皆さん、こんにちは。ここ数日間、toString を書くことに固執しています。誰かが配列内のすべての要素を最初から最後まで表示するためのループを作成する方法を理解するのを手伝ってくれますか? 私は立ち往生し続けています。ご覧のとおり、ループの作成を開始しましたが、ループが正しく開始されたかどうかはわかりません。ありがとう!

4

2 に答える 2

2

取得しているものをループ内のoutput文字列に追加していません! for()次のように変更する必要があります。

for (int i = 0; i < this.nextPos; ++i)
{
    output += this.results[i].getRFID();
    output += this.results[i].getGender();
    output += "\n";
}

この周りに好きな書式を追加します。コード内のコメントは、ループのたびに "Rodent's Information:" のような文字列を追加する必要があることを示しています。また、各フィールドのタイトルとインジケーター、およびそれらの間の改行も追加します。

幸運を!

また、質問の下のコメントで@Mattが言ったことを拡張するために、for()ループでの比較は非常に奇妙で、あなたが望むことをしていない可能性があります(おそらくそうであり、私たちは皆、慣習にこだわっています) )。通常、配列またはコレクションをループするときは、「次の位置」にあるものではなく、コレクションの長さと比較します(これが変数の意味だと思います)。

于 2012-11-25T00:54:31.570 に答える
1

うーん、ループして頻繁に行う場合は、 を検討するかもしれませんStringBuilderStrings は Java では不変です。そのため、そのループのどこにでも生成される新しい文字列の束が得られます。イクウィム

簡単な例

StringBuilder output = new StringBuilder("");
for(int i = 0; i < this.nextPos; ++i) {
 output.append(this.results[i].getRFID());
 ...  
}

return output.toString();
于 2012-11-25T01:00:36.153 に答える