我遇到以下代码问题。具体来说,3 toCharArray语句。当我第一次运行代码时,它工作正常,但再次运行它,我收到所有3行的以下错误消息
']'预计为 非法开始表达
不是声明
我意识到我可以通过将它们更改为char []并将[0]调用放在print语句中来打印首字母,但我很好奇为什么代码只能工作一半时间。
谢谢!
import java.util.Scanner;
public class Initials {
public static void main(String[] args) {
Scanner names = new Scanner(System.in);
System.out.print("What is your first name? ");
String first = names.nextLine();
System.out.print("What is your middle name? ");
String middle = names.nextLine();
System.out.print("What is your last name? ");
String last = names.nextLine();
System.out.format("Your name is %s %s %s %n",first,middle,last);
char[0] Finitial = first.toCharArray();
char[0] Minitial = middle.toCharArray();
char[0] Linitial = last.toCharArray();
System.out.format("Your initials are %c %c %c",Finitial,Minitial,Linitial);
}
}
答案 0 :(得分:4)
char[0]
不是Finitial
变量的有效类型。您获得char[0]
之类的唯一时间是:
char[] x = new char[0];
相反,你应该使用:
char firstInitial = first.toCharArray()[0];
// etc
或者分两个阶段:
char[] firstArray = first.toCharArray();
char firstInitial = firstArray[0];
答案 1 :(得分:2)
这是非法语法:
char[0] Finitial = first.toCharArray();
char[0] Minitial = middle.toCharArray();
char[0] Linitial = last.toCharArray();
你想要他的代替:
char Finitial = first.toCharArray()[0];
char Minitial = middle.toCharArray()[0];
char Linitial = last.toCharArray()[0];
BTW:Java命名约定要求您使用小写字母开始本地变量名称。像这样使用驼峰案例:
char firstInitial = first.toCharArray()[0];
char middleInitial = middle.toCharArray()[0];
char lastInitial = last.toCharArray()[0];