Java 提示用户在一行中输入名称并将其打印为;“最后,第一”;
我们整个实验室都没人能解决这个问题,所以我们不得不做作业。我们将提示用户在一行中输入他们的名字和姓氏。main方法应该处理所有println语句,并将名称打印为Last、FirstJava 提示用户在一行中输入名称并将其打印为;“最后,第一”;,java,java.util.scanner,user-input,Java,Java.util.scanner,User Input,我们整个实验室都没人能解决这个问题,所以我们不得不做作业。我们将提示用户在一行中输入他们的名字和姓氏。main方法应该处理所有println语句,并将名称打印为Last、First line 26 states "cannot find symbol." line 36 states "not a statement. ';' expected. line 39 states unreachable statement. 我已经用这个代码玩了一个小时,几乎放弃了。有什么帮助吗 /* * To
line 26 states "cannot find symbol."
line 36 states "not a statement. ';' expected.
line 39 states unreachable statement.
我已经用这个代码玩了一个小时,几乎放弃了。有什么帮助吗
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lab11;
import java.util.Scanner;
/**
*
* @author xxxxxx
*/
public class Lab11 {
public static void main(String[] args) {
System.out.println("Enter your name: ");
Scanner user_input=new Scanner(System.in);
changeNameFormat();
System.out.println(lastName+", " + firstName);
System.out.println("Enter a word. ");
palindrome();
}
public static String changeNameFormat() {
String firstName, lastName;
firstName, lastName = user_input.nextLine;
return lastName;
return firstName;
}
“找不到符号”将是palindrome()
,这是一个方法调用,但您尚未在任何地方定义它(而且它似乎与问题无关)。你也会在网上看到这个
System.out.println(lastName+", " + firstName);
因为此时您还没有声明lastName
或firstName
“nota statement”是行firstName,lastName=…
,这在Java中是无效的语法(尽管在某些语言中,您可以同时为两个变量赋值)。您需要找到一种方法将输入分成两部分,并将一部分分配给firstName
,另一部分分配给lastName
;但就目前而言,这句话对Java来说并没有什么意义
“无法访问的代码”是返回firstName
。前面的return
行结束了方法的执行,因此您的代码永远不会到达returnfirstname
语句。你应该打印东西,而不是退回
在这种情况下,所有报告的错误都是真实的。但是一般来说,如果代码的第一部分有很多错误,那么编译器将无法可靠地识别以后的错误,因为它无法解析整个文件。因此,有时,您会发现在前几行中修复了语法错误,这似乎会在以后产生问题。这并不是真的产生了新问题,只是编译器以前无法找到它。以下是您需要执行的步骤列表: 获取输入[例如:“John Smith”] 将其分成两部分[有几种方法可以做到这一点]
firstName = input.substring(0, input.indexOf(" "));
lastName = input.substring(input.indexOf(" ")+1, input.length());
返回字符串的一部分
在字符串中查找特定字符
它接受一个起始值和一个结束值
在这种情况下,我们从开始开始,当我们找到一个空间时结束
为了得到姓氏,我们从找到空格的地方开始,然后在字符串的末尾结束
您还可以将其与删除字符串开头/结尾空白的方法结合使用
最后,我们返回连接的值:
return lastName + ", " + firstName;
完整代码:
package lab11;
import java.util.Scanner;
public class Lab11 {
public static Scanner user_input;
public static void main(String[] args) {
user_input = new Scanner(System.in);
System.out.print("Enter your name: ");
System.out.println(changeNameFormat(user_input.nextLine()));
}
public static String changeNameFormat(String input) { //Pass a name
String firstName, lastName;
firstName = input.substring(0, input.indexOf(" "));
lastName = input.substring(input.indexOf(" ")+1, input.length());
return lastName + ", " + firstName;
}
}
测试日期:
最后一件事。这是一个很好的约定,使您的方法按名称工作
因为您的名为“changeNameFormat()”,所以我们可能应该将要更改的名称传递给它
然后在我们的main中,我们可以获取输入,甚至可以将其作为参数传递。Java不支持这种语法。相反,您需要使用类似的东西,您可以将其与格式化输出结合起来,如
Scanner input = new Scanner(System.in);
System.out.println("Enter your name: ");
if (input.hasNextLine()) {
String line = input.nextLine();
String[] names = line.split("\\s+"); // <-- globs consecutive white-space
if (names.length > 1) {
String firstName = names[0]; // <-- indexes start at 0
String lastName = names[names.length - 1]; // <-- so subtract 1!
System.out.printf("%s, %s%n", lastName, firstName);
} else {
System.out.println("Unknown: " + line);
}
}
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入您的姓名:”);
if(input.hasNextLine()){
String line=input.nextLine();
String[]name=line.split(\\s+”);//1){
String firstName=names[0];//我为您的问题提供了以下解决方案,名字和姓氏必须用空格分隔
import java.util.Scanner;
public class LastFirst {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please Enter your name");
String name = scanner.nextLine();
name = name.substring(name.indexOf(" ")+1, name.length())+" "+name.substring(0, name.indexOf(" "));
System.out.println(name);
}
}
请编辑您的帖子,以正确格式化代码的最后几行:)您没有关闭类括号..一个函数可以有多少个返回?????我无法编辑,它只会显示一个白色框。在阅读以下内容后,我感觉到“哦..等等什么:”我们整个实验室都没有人能够解决这个问题。任何带有语法突出显示和动态检查的IDE都会大声尖叫。我在复制代码之前忘记删除回文行。它仍然显示相同的错误。我想我可以将这些名称返回到主方法,并让主方法打印出来。我们不允许在任何地方使用print语句除了主符号外,@Sarah我已经用另一个潜在的“找不到符号”更新了答案。我把它放到changeNameFormat方法中,它是红色的。它会提示我在每一行上创建字段和类。谢谢!!!现在,我可以从中学习,并以此作为指导我自己完成第二个问题。我添加了一些额外的注释。这是一个很好的惯例来改变方法,正如我在底部所描述的:)希望这个帮助附言