0

私はJavaの初心者で、インターネットから練習問題をやっています。質問を試みましたが、エラーがわかりません。

コンソールの Scanner をパラメーターとして受け取り、ユーザーにフル ネームを入力するように求め、名前を逆の順序 (つまり、姓、名) で出力する processName というメソッドを記述します。名前と姓だけが与えられると思うかもしれません。スキャナで入力行全体を一度に読み取り、必要に応じて分割する必要があります。ユーザーとの対話の例を次に示します。

あなたのフルネームを入力してください: Sammy Jankis あなたの名前を逆順にすると Jankis, Sammy です

public static void processName(Scanner console) {
    System.out.print("Please enter your full name: ");

    String full=console.nextLine();

    String first=full.substring(0," ");
    String second=full.substring(" ");

    System.out.print("Your name in reverse order is: "+ second + "," + first);

}

多分私は自分のコードを説明するつもりです.だから私は2つの単語をバラバラにしようとします.だから私は部分文字列を使って両方の単語を見つけてからハードコードしてそれらを逆にします.ロジックは正しいと思いますが、それでもこれらのエラーが発生します.

Line 6
You are referring to an identifer (a name of a variable, class, method, etc.) that is not recognized. Perhaps you misspelled it, mis-capitalized it, or forgot to declare it?
cannot find symbol
symbol  : method substring(int,java.lang.String)
location: class java.lang.String
    String first=full.substring(0," ");
                     ^
Line 7
You are referring to an identifer (a name of a variable, class, method, etc.) that is not recognized. Perhaps you misspelled it, mis-capitalized it, or forgot to declare it?
cannot find symbol
symbol  : method substring(java.lang.String)
location: class java.lang.String
    String second=full.substring(" ");
                      ^
2 errors
33 warnings
4

5 に答える 5

1

substring()メソッドのドキュメントを見てください。2 番目のパラメーターとして文字列を取りません。

  String first=full.substring(0," ");
  String second=full.substring(" ");

代わりに必要なのはindexOf()メソッドです。最初に空白文字のインデックスを見つけます。次に、その時点までの部分文字列を見つけます。

  int n = full.indexOf(" ");
  String first=full.substring(o, n); //gives the first name
于 2013-03-09T16:26:29.843 に答える
1
public static void processName(Scanner console) {
    System.out.print("Please enter your full name: ");

    String[] name = console.nextLine().split("\\s");

    System.out.print("Your name in reverse order is: "+ name[1] + "," + name[0]);

}

もちろん、名前に 2 つの単語がある場合にのみ機能します。長い名前の場合は、配列を逆にするメソッドを作成する必要があります

于 2013-03-09T16:25:18.507 に答える
0

ここhttp://docs.oracle.com/javase/6/docs/api/java/lang/String.htmlにアクセスし、読んで理解してください。

于 2013-03-09T16:29:20.593 に答える
0

Java API に従って、1 つの int 引数と 2 つのsubstring()int 引数のいずれかを受け入れますが、String 引数で呼び出しています。したがって、これらのエラーが発生しています。詳細については、 String API を参照してください。substring(int beginIndex)substring(int startIndex, int endIndex)

于 2013-03-09T16:25:46.073 に答える