问题

Java 编译错误 Error: not a statement


嗨,我是 Java 编程新手。我想编写一个获取用户的名字和姓氏首字母的 java 程序。我的代码是:

public class MyProgram {
public void start() {
    String name = getNameFromUser();
    char firstNameInitials = getInitials(name);
    char surnameInitials = getInitials(name);
    printInitials(firstNameInitials, surnameInitials);
}
private String getNameFromUser() {
    System.out.print("Please enter your name: ");
    String name = Keyboard.readInput();
    return name;
}
private char getInitials(String name) {
    char firstNameInitials = name.charAt(0);
    int indexOfSpace = name.indexOf(" ");
    char surnameInitials = name.charAt(indexOfSpace + 1);

    return firstNameInitials; surnameInitials;
}

private void printInitials(String firstNameInitials, String surnameInitials){
    System.out.print("your initials are: " + firstNameInitials +". " + surnameInitials +".");
}
}

我收到一条错误消息,我不知道这意味着什么:

Error: not a statement.

错误似乎在第 18 行,在 return 语句处。我试图修复它但失败了。请问有什么建议可以解决这个问题吗?

推荐答案
return firstNameInitials; surnameInitials;

你不能像这样返回多个字符。而是使用 char 数组返回

例如你可以这样返回

private char[] getInitials(String name) {
    char firstNameInitials = name.charAt(0);
    int indexOfSpace = name.indexOf(" ");
    char surnameInitials = name.charAt(indexOfSpace + 1);

    char[] result  = {firstNameInitials, surnameInitials};
    return result;
}

并称它为

char[] a = getInitials(name);
char firstNameInitials = a[0];
char surnameInitials = a[1];