需要在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!");
}
}
您正在使用不正确的扫描仪。它应该是这样的:
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
)。
,这解决了我最后一个问题非常感谢你 – user2172510 2013-03-15 06:22:38
没问题。请接受对您最有用的答案。 – 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!");
}
}
在注释掉last1和int end = 0后,它遵循并运行该程序的最后部分应该或多或少容易做,非常感谢您的帮助 – user2172510 2013-03-15 06:22:08
你有没有张贴在这里做过任何研究这些错误?他们中的大多数都相当简单,一点研究可能会给出答案。 – scaevity 2013-03-15 04:44:14