Java 为什么indexOf()不能识别空格?
对于这个程序,它要求用户输入他们的全名。然后,它在名字和姓氏之间的空格处将名字和姓氏分开,从而对它们进行排序。但是,indexOf不识别空间,只返回-1。为什么呢?谢谢 以下是PracticeIt的提示: 编写一个名为processName的方法,该方法接受控制台的扫描程序作为参数,并提示用户输入其全名,然后按相反顺序打印名称,即姓氏、名。你可以假设只会给出名字和姓氏。您应该使用扫描仪一次读取整行输入,然后根据需要将其分开。以下是与用户的对话示例: 请输入您的全名:Sammy Jankis 你的名字按相反顺序是詹基斯,萨米Java 为什么indexOf()不能识别空格?,java,string,char,indexof,Java,String,Char,Indexof,对于这个程序,它要求用户输入他们的全名。然后,它在名字和姓氏之间的空格处将名字和姓氏分开,从而对它们进行排序。但是,indexOf不识别空间,只返回-1。为什么呢?谢谢 以下是PracticeIt的提示: 编写一个名为processName的方法,该方法接受控制台的扫描程序作为参数,并提示用户输入其全名,然后按相反顺序打印名称,即姓氏、名。你可以假设只会给出名字和姓氏。您应该使用扫描仪一次读取整行输入,然后根据需要将其分开。以下是与用户的对话示例: 请输入您的全名:Sammy Jankis 你的
import java.util.*;
public class Exercise15 {
public static void main(String[] args) {
Scanner inputScanner = new Scanner(System.in);
processName(inputScanner);
}
public static void processName(Scanner inputScanner) {
System.out.print("Please enter your full name: ");
String fullName = inputScanner.next();
int space = fullName.indexOf(" "); // always return -1 for spaces
int length = fullName.length();
String lastName = fullName.substring(space+1,length+1);
String firstname = fullName.substring(0, space);
System.out.print("Your name in reverse order is " + lastName + ", " + firstname);
}
}
当您执行String fullName=inputScanner.next时,您只读取到下一个空格,因此显然fullName中没有空格,因为它只是第一个名称
如果要读取整行,请使用字符串fullName=inputScanner.nextLine 因为next将返回下一个令牌,所以使用nextLine not next获取整行
请参见使用下一行而不是下一行并学习使用调试器,甚至System.out.println:输出全名将允许您自己理解问题。