【发布时间】:2021-02-22 18:42:06
【问题描述】:
我正在为一个程序编写这个小部分,我将在 java 中为名称的首字母编写,我需要确定其中每个空格的位置以便能够选择首字母。我正在测试它以确保在行中的正确位置看到空格,但由于某种原因,位置总是出错!请帮帮我。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("please enter full name:");
String name = in.nextLine();
int space = name.indexOf(" ");
int space1 = name.indexOf(" ", space) + space+1;
int space2 = name.indexOf(" ", space1) + space1+1;
int space3 = name.indexOf(" ", space2) + space2+1;
int space4 = name.indexOf(" ", space3) + space3+1;
int space5 = name.indexOf(" ", space4) + space4+1;
System.out.println(space + " " + space1 + " " + space2 + " " + space3 + " " + space4);
}
}
我使用这一行的想法是对出现在最后一行之后的行空间的每一部分进行计数,然后加 1,因为 java 从 0 开始计数。
(" ", 空格1) + 空格1+1;
基本上,如果名字是“Jeff Luiz Jeff Luiz”,第一个空格在 4,下一个空格在 9,所以 4,然后在这个空格之后继续计数,从0开始,会再次找到4(因为Luiz的字母数量相同),与最后一个空格数相加以跟踪实际位置(然后它会是 8),最后总结为 1,因为 java 是如何工作的,依此类推。当我运行这 4 个单词时,我发现了结果 4 9 19 19 19。有人知道我的代码有什么问题吗?
【问题讨论】:
-
"Jeff Luiz Jeff Luiz"的预期输出是什么? -
获取第二个空格的索引需要使用
int space1 = name.indexOf(" ", space + 1);
标签: java string methods indexof