1

Linked List プロジェクトのコンストラクターの作成に問題がありましたが、このコンテキストで charAt が機能しない理由がわかりません。エラーが表示されます: charAt の呼び出しでシンボルが見つかりません。

   //copy
    public Project123(Project123 s){
        this.head = null;
        for (int i = s.length()-1; i>=0; i--){
            head = new charNode (s.charAt(i), head);
            }
        }
   //constructor
    public Project123(String s){
        this.head = null;
        for (int i = s.length()-1; i>=0; i--){
            head = new charNode (s.charAt(i), head);
            }
        }

他の関連記事と同じ問題はないようです。小文字であり、正しく呼び出されているようです。さらにコンテキストが必要な場合は、さらに投稿します。

4

4 に答える 4

1

の:

  public Project123(Project123 s){
    this.head = null;
    for (int i = s.length()-1; i>=0; i--){
        head = new charNode (s.charAt(i), head);
        }
    }

s.charAt(i)

ここで s は文字列ではないため、文字列メソッドを使用することはできません -- 動作しません。

そのコピー コンストラクターではなく、ノードをコピーするノードを反復処理します。深いコピーを行うか浅いコピーを行うかはあなた次第です。

于 2013-10-29T02:05:38.977 に答える
0

の最初の「s」s.charAt(i)は文字列ではなく、Project123 です。2つ目は大丈夫なはずです。変更するだけです:

public Project123(Project123 s){

public Project123(String s){
于 2013-10-29T02:06:19.577 に答える
0

あなたの 2 つのメソッドは、実際にはコンストラクターです。最初は、ではなくsとして宣言されています。したがって、メソッドはありません。実際、(新しく変更された) コピー コンストラクターには、それを複製するためのさまざまな手法が必要です。リスト内の各ノードを取得して複製し、複製を使用します。使うつもりはありません。Project123StringcharAtCloneable

ああ、そして に変わりcharNodeCharNodeに変わりProject123CharLinkedListまたはそのようなものに変わります。

于 2013-10-29T02:08:35.650 に答える