需要在java中使用名称生成器的建议

问题描述:

嗨,我试图制作一个星球大战名称生成器,我被卡住了。我想让程序遵循以下指南:需要在java中使用名称生成器的建议

我应该制作一个名为promptstring的方法。

用户的星球大战名字由姓氏和名字组成: 对于第一个名字,使用用户的真正名字的前3个字符,与用户真实姓氏的前2个字符连接。 对于姓氏,请使用用户母亲婚前姓氏的前2个字符,并与用户出生城市的前3个字符连接。 对于用户的星球大战星球,使用用户姓氏的最后2个字符,与用户的汽车连接。

例子:

  • 输入你的名字:汤姆
  • 输入您的姓氏:约克
  • 输入您的母亲的娘家姓:塞尔韦
  • 输入您出生的城市:威灵
  • 输入您开车的第一辆车:奥迪
  • 您是KEAUDI的THOYO SEWEL

这是

8 errors found: File: J:\CS Projects\NameGenerator.java [line: 15] Error: input cannot be resolved

File: J:\CS Projects\NameGenerator.java [line: 18] Error: The method nextLine() in the type java.util.Scanner is not applicable for the arguments (int, int)

File: J:\CS Projects\NameGenerator.java [line: 19] Error: last1 cannot be resolved to a variable

File: J:\CS Projects\NameGenerator.java [line: 19] Error: end cannot be resolved to a variable

File: J:\CS Projects\NameGenerator.java [line: 22] Error: The method nextLine() in the type java.util.Scanner is not applicable for the arguments (int, int)

File: J:\CS Projects\NameGenerator.java [line: 25] Error: The method nextLine() in the type java.util.Scanner is not applicable for the arguments (int, int)

File: J:\CS Projects\NameGenerator.java [line: 31] Error: Starwarsname cannot be resolved to a variable

File: J:\CS Projects\NameGenerator.java [line: 34] Error: Starwarsname cannot be resolved to a variable

现在我只是有编译器错误我一遍遍返工这个节目又和我坚持。任何人都可以指出我正确的方向或告诉我我做错了什么。先谢谢你。

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!"); 
    } 
} 
+2

你有没有张贴在这里做过任何研究这些错误?他们中的大多数都相当简单,一点研究可能会给出答案。 – scaevity 2013-03-15 04:44:14

您正在使用不正确的扫描仪。它应该是这样的:

first = wars.nextLine(); 

如果只想第一的前两个字符,则:

first = first.substring(0,2); 

同样的,你的字符串的其余部分。您无法使用扫描仪类获取子字符串。扫描仪类只扫描您的输入。使用String.substring方法(如上所示)获取子字符串。

编辑:另外,你正在尝试使用一些未声明的变量。确保先将变量“Starwarsname”声明为字符串,然后再将其分配给某些内容。

的变化有

wars.nextLine(0,1); 

wars.nextLine(); 

后来用String的

str.substring(beginIndex, endIndex) 

方法得到你想要输入的字符串的任何部分,串联和打印报表他们。

Error: end cannot be resolved to a variable 

表示您从未声明变量end。在使用每个变量之前,确保有一条类似于String 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)。

+1

,这解决了我最后一个问题非常感谢你 – user2172510 2013-03-15 06:22:38

+1

没问题。请接受对您最有用的答案。 – scaevity 2013-03-15 06:55:43

使用下面的代码并测试它... 我也做了测试。

点关注:

  • 你没有申报一些变量

  • 你没有扫描仪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!"); 
    } 
} 
+0

在注释掉last1和int end = 0后,它遵循并运行该程序的最后部分应该或多或少容易做,非常感谢您的帮助 – user2172510 2013-03-15 06:22:08