1. ホーム
  2. java

[解決済み] Javaコンパイラーエラー:ステートメントではありません

2022-02-26 18:20:53

質問

こんにちは、私は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];