我写了一个小程序,提示用户输入他们的第一个中间名和最后一个名字,然后尝试找到每个空格并将空白后面的名称存储到新的String变量中。问题与子字符串方法
问题:我想在名称的每个部分之前找到空格,以便我可以取每个相对名称并将其存储在一个新的String变量中,但我不确定哪里出错。
import java.util.Scanner;
public class Example
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String name = "",
firstName = "",
middleName = "",
lastName = "";
boolean isName = false;
while(!isName)
{
System.out.print("\nEnter your name as 'First Middle Last': ");
name = input.nextLine();
if(name.length() < 0)
{
System.out.print("\nEnter your name as 'First Middle Last': ");
name = input.nextLine();
System.out.print("Invalid input");
}
else isName = true;
}
for(int j = 0; j < name.length(); j++)
{
if(name.charAt(j) == ' ')
{
firstName = name.substring(0, j); // Start at 0 end at first white space
middleName = name.substring(j + 1, name.length());
lastName = name.substring(j + 1, name.length());
}
}
System.out.println("\nLast Name, First Name, Middle Name: " + lastName + firstName + middleName);
}
}
我得到这个样子的
Enter your name as 'First Middle Last': Adam Thomas Smith
Last Name, First Name, Middle Name: SmithAdam ThomasSmith
任何建议,如何解决这个问题的输出?
您的循环没有多大意义。尝试使用string.split(http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-)来拆分空格字符。还要注意名字中带有空格的名字或姓氏。 – Resorath
@Resorath这是一个Java问题。您正在链接到.NET文档。 –
@StefanDollase oops! http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String- – Resorath