-1

こんにちは、Star Wars の名前ジェネレーターを作成しようとしていますが、行き詰まっています。プログラムが次のガイドラインに従うようにすることを想定しています。

というメソッドを作るべきpromptstringです。

ユーザーの Star Wars 名は姓と名で構成されます。名には、ユーザーの本名の最初の 3 文字を使用し、ユーザーの本姓の最初の 2 文字と連結します。姓には、ユーザーの母親の旧姓の最初の 2 文字と、ユーザーの出生地の最初の 3 文字を連結して使用します。ユーザーの Star Wars Planet には、ユーザーの姓の最後の 2 文字をユーザーの車と連結して使用します。

例:

  • 名前を入力してください: Thom
  • 姓を入力してください: ヨーク
  • あなたの母親の旧姓を入力してください: セルウェイ
  • あなたが生まれた都市を入力してください: ウェリングバラ
  • 最初に運転した車を入力してください: アウディ
  • あなたはKEAUDIのTHOYO SEWELです

現在、コンパイルエラーが発生しています

8 個のエラーが見つかりました: ファイル: J:\CS Projects\NameGenerator.java [行: 15] エラー: 入力を解決できません

ファイル: J:\CS Projects\NameGenerator.java [行: 18] エラー: タイプ java.util.Scanner のメソッド nextLine() は、引数 (int、int) には適用できません

ファイル: J:\CS Projects\NameGenerator.java [行: 19] エラー: last1 を変数に解決できません

ファイル: J:\CS Projects\NameGenerator.java [行: 19] エラー: end を変数に解決できません

ファイル: J:\CS Projects\NameGenerator.java [行: 22] エラー: タイプ java.util.Scanner のメソッド nextLine() は、引数 (int、int) には適用できません

ファイル: J:\CS Projects\NameGenerator.java [行: 25] エラー: タイプ java.util.Scanner のメソッド nextLine() は、引数 (int、int) には適用できません

ファイル: J:\CS Projects\NameGenerator.java [行: 31] エラー: Starwarsname を変数に解決できません

ファイル: J:\CS Projects\NameGenerator.java [行: 34] エラー: Starwarsname を変数に解決できません

私はこのプログラムを何度も作り直しましたが、行き詰まりました。誰かが私を正しい方向に向けたり、私が間違っていることを教えてもらえますか. 前もって感謝します。

import java.util.*;


 public class NameGenerator {
     static Scanner wars = new Scanner(System.in);

     public static void main(String[] args) {
         //Prompt for User's Name
         String first,last,mother,city,car;


         System.out.printf("Please state your First Name");
         first= wars.Line(0,2);

         System.out.printf("Please state your Last name");
         last=wars.nextLine(0,1);
         last1=wars.nextLine(-1,end);

         System.out.printf("Please state your mothers maiden name");
         mother=wars.nextLine(0,1);

         System.out.printf("Please state the city you were born in ");
         city=wars.nextLine(0,2);

         System.out.printf("Please state your first car");
         car=wars.nextLine();


         Starwarsname=first+last + mother + city  + "of" + last + car ;

         System.out.println("In a galaxy far, far away you are known as " + Starwarsname + "        MAY THE FORCE be with you!");
     }
 }
4

4 に答える 4

1

持っているステートメントを変更します

wars.nextLine(0,1);

wars.nextLine();

後で使用する

str.substring(beginIndex, endIndex)

文字列のメソッドを使用して、入力した文字列の任意の部分を取得し、連結して出力​​します。

于 2013-03-15T04:48:01.157 に答える
1
Error: end cannot be resolved to a variable

variable を宣言していないことを示しますendString end;すべての変数を使用する前に、次のような行があることを確認してください。

Error: The method nextLine() in the type java.util.Scanner is not applicable for the arguments (int, int)

nextLine()パラメータを取ることができないことを示します ( javadocsを参照)。入力から部分文字列を取得したい場合は、次のようにしwars.nextLine().substring(0,2)ます。さらに、両方の数値が正でなければなりません (コード内の -1 によって が発生しますArrayOutOfBoundsException)。

于 2013-03-15T04:54:17.883 に答える
1

スキャナの使い方が間違っています。次のようになります。

first = wars.nextLine();

first の最初の 2 文字だけが必要な場合は、次のようにします。

first = first.substring(0,2);

残りの弦と同じです。スキャナー クラスを使用して部分文字列を取得することはできません。Scanner クラスは入力のみをスキャンします。String.substring メソッド (上記) を使用して部分文字列を取得します。

編集:また、宣言されていないいくつかの変数を使用しようとしています。何かに割り当てる前に、変数「Starwarsname」を最初に文字列として宣言してください。

于 2013-03-15T04:46:29.070 に答える
1

以下のコードを使用してテストします...私もテストを行いました。

気になる点:

  • 一部の変数が宣言されていません

  • Scanner API でメソッド名を確認していません。それについては、Java docを確認してください。

確認して教えてください

import java.util.*;

public class NameGenerator {
    static Scanner wars = new Scanner(System.in);

    public static void main(String[] args) {


        //Prompt for User's Name
        String first, last, mother, city, car,Starwarsname,last1;
        int end=0;


        System.out.printf("Please state your First Name");
        first = wars.nextLine();//wars.Line(0, 2);

        System.out.printf("Please state your Last name");
        last = wars.nextLine();
//        last1 = wars.nextLine();

        System.out.printf("Please state your mothers maiden name");
        mother = wars.nextLine();

        System.out.printf("Please state the city you were born in ");
        city = wars.nextLine();

        System.out.printf("Please state your first car");
        car = wars.nextLine();

        Starwarsname = first +" "+ last +" "+ mother +" "+ city + " of " + last +" "+ car;
        System.out.println("In a galaxy far, far away you are known as " + Starwarsname +
                           "        MAY THE FORCE be with you!");
    }
}
于 2013-03-15T04:55:39.853 に答える