2016-03-09 81 views
1

我想创建一个char数组,但每次运行我的代码时都会收到错误。这是我的代码:Char Array援助

public static int namevalue(String name){ 
    char[] charval={'', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; 
    char let; 
    int val=0; 
    int letter; 
    int total=0; 
    int character; 
    for (letter=0;letter<name.length();letter++){ 
     let=name.charAt(letter); 
     if (charval[letter]==let){ 
      total+=letter; 
     } 
     total+=val; 
    } 
    return total; 
} 

这是我得到(main.java:10与字符数组行)错误:

main.java:10:错误:空字符文字 char [] charval = {'','A','B','C','D','E','F','G','H','I','J', K,L,M,N,O,P,Q,R,S,T,U,V,W ','X','Y','Z'};

有一个箭头指向“'S”,“我的代码在调试器中的一部分,我不确定为什么。如果我删除那部分,使它成为''R','T',“同样的错误显示,但指向''T'”。有人可以帮助我,告诉我为什么?据我所知,这是与其他字母相同的格式,没有问题。

非常感谢

+4

有没有空字符文字('“”')。删除那个,你的代码是合法的。 char [] charval = {/ *'',* /'A','B','C','D','E','F','G','H','I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V ','W','X','Y','Z'};' –

+0

'直到's'才出现错误? – Sal

+0

要么删除第一个值''''或在单引号之间插入一个空格,具体取决于您希望'charval'中的第一个值是否为空格。 –

回答

0

就像之前评论过的那样,没有文字“'。但是,如果您需要为空字符串打开该位置,则可以在其中存储NULL值。

char[] charval={'\u0000', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; 

java中“NULL”字符的值是'\ u0000'。这是一个字符的默认值。这是从what's the default value of char?拉。

+0

这段代码不能编译,你不能将'null'赋值给像'char'这样的基本类型。 –

+0

不,这不是合法的Java。 'null'不是'NULL'。而'char'不能为null。它可能是一个'\ 0'。 –

+0

import static java.sql.Types.NULL;该导入消除了编译错误。 – DarkJade

0

我通过增加一个空间,你的第一个空值运行:

char[] charval = {' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; 

希望这有助于。

-1

一个不太优雅,但我喜欢它的明确性是

char[] charval = new char[] {' ', 'A', 'B', 'C'...}; 

虽然它是一个小更详细...