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'};

不会工作有两个原因。

  1. 它不是有效的语法,因此编译器不知道如何处理它。
  2. 您需要创建变量的新实例

.

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

因为monster已经被声明为 char 数组 ( char[]),所以第二条语句中不需要使用 []

于 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 回答