对于这个程序,它要求用户输入他们的全名。然后,它通过在名字和姓氏之间的空格处分隔名字和姓氏来对名字和姓氏进行排序。但是,indexOf() 无法识别该空间,仅返回 -1。这是为什么?谢谢。
以下是 PracticeIt 的提示:
编写一个名为 processName 的方法,该方法接受控制台的 Scanner 作为参数,并提示用户输入他或她的全名,然后以相反的顺序打印名称(即姓氏、名字)。您可能会假设只会给出名字和姓氏。您应该使用扫描仪立即读取整行输入,然后根据需要将其分解。以下是与用户的对话示例:
请输入您的全名:Sammy Jankis
你的名字倒序是 Jankis,Sammy
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);
}
}
最佳答案
由于 next
将返回下一个标记,因此使用 nextLine
而不是 next 来获取整行
参见http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()
关于java - 为什么indexOf()不能识别空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671705/