1

私は Eclipse を使用してきましたが、文字配列に格納されている値を変更しようとするとエラーが発生します。コード:

    import java.util.Scanner;

public class test {
    public static void main(String args[]) {
        char monstername[] = {'e', 'v', 'i', 'l'};
        String monster = new String(monstername);
        System.out.println("Hello!");
        System.out.println("You are attacked by a " + monster);
        monstername[] = {'t', 'v', 'i', 'l'};
        System.out.println("You are attacked by a " + monster);
    }
}

ライブラリを更新しようとしましたが、うまくいきませんでした。

4

5 に答える 5

3
monstername[] = {'t', 'v', 'i', 'l'};

2 つの理由で機能しません。

  1. これは有効な構文ではないため、コンパイラはそれをどう処理すればよいかわかりません。
  2. 変数の新しいインスタンスを作成する必要があります

.

monstername = new char[] {'t', 'v', 'i', 'l'};

monsterは既に char 配列 ( ) として宣言されているためchar[]、2 番目のステートメントで [] を使用する必要はありません。

于 2012-09-29T02:50:14.420 に答える
2

この行

monstername[] = {'t', 'v', 'i', 'l'};

は有効な (部分的な) 宣言ですが、有効な代入ではありません。そのはず

monstername = new char[]{'t', 'v', 'i', 'l'};
monster = new String(monstername);
于 2012-09-29T02:35:13.967 に答える
1

属して[]いないため、式として配列を作成するには、次を使用しますnew <type>[]

monstername = new char[] {'t', 'v', 'i', 'l'};
于 2012-09-29T02:35:21.973 に答える
0

monstername[]はポインターであるため、そのように更新することはできません。

試す:monstername = new char[] {'s', 'm', 't', 'g'};

于 2012-09-29T02:34:43.427 に答える
0

行を変更する

monstername[] = {'t', 'v', 'i', 'l'};
System.out.println("You are attacked by a " + monster);

monstername = new char[]{'t', 'v', 'i', 'l'};
System.out.println("You are attacked by a " + new String(monstername));
于 2012-09-29T02:36:02.477 に答える