在我们整个实验室中,没有人能够解决这个问题,因此我们必须做作业。我们要提示用户在一行上输入他们的名字和姓氏。主要方法应该处理所有println语句,并且应将名称打印为Last,First。
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; }
这是您需要执行的步骤列表:
获取输入[将是示例:“约翰·史密斯”]
分成两部分[有几种方法可以执行此操作]
firstName = input.substring(0, input.indexOf(" ")); lastName = input.substring(input.indexOf(" ")+1, input.length());
substring()返回字符串的一部分。
indexOf()在字符串中查找特定字符。
它需要一个开始值和一个结束值。
在这种情况下,我们从头开始,到找到空间时结束。
为了获得姓氏,我们从找到空格的地方开始,到字符串的末尾结束。
您还可以将其与.trim()方法结合使用,该方法从字符串的开头/结尾删除空格。
最后,我们返回串联的值:
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; } }
经过测试:http://www.compileonline.com/compile_java_online.php
最后一件事。按照您的方法命名的习惯是一个很好的约定。
由于您的名称为“ changeNameFormat()”,因此我们可能应该将其更改为我们想要更改的名称。
然后在我们的主体中,我们可以获得输入,甚至可以将其作为参数传递。