我正在尝试创建一个char数组,但每次运行我的代码时都会收到错误。这是我的代码:
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是char数组的行):
main.java:10:错误:空字符文字 char [] charval = {&#39;&#39;,&#39; A&#39;,&#39; B&#39;,&#39; C&#39;,&#39; D&#39; ,&#39;&#39; F&#39;,&#39; G&#39;,&#39; H&#39;,&#39;我&#39;,&#39; J&#39;,&#39; K&#39;,&#39; L&#39;,&#39; M&#39;,&#39; N&#39;,&#39; O&#39;, &#39; P&#39;,&#39; Q&#39;,&#39; R&#39;,&#39; S&#39;,&#39; T&#39;,&#39; U& #39;,&#39; V&#39;,&#39; W&#39;,&#39; X&#39;,&#39; Y&#39;,&#39; Z&#39;};
有一个箭头指向&#34;&#39; S&#39;,&#34;我在调试器中的部分代码,我不确定为什么。如果我删除该部分,请将其制作成&#34;&#39; R&#39;&#39; T&#39;,&#34;同样的错误显示但指出了&#34;&#39;&#39;&#34;&#34;&#39;有人可以帮帮我,告诉我为什么?据我所知,它与其他字母的格式相同,没有问题。
非常感谢
答案 0 :(得分: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”char的值是'\ u0000'。这是char的默认值。这是从what's the default value of char?。
中提取的答案 1 :(得分: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'};
希望这有帮助。
答案 2 :(得分:-1)
另一个,不那么优雅,但我喜欢它的显性是
char[] charval = new char[] {' ', 'A', 'B', 'C'...};
虽然它有点冗长......