Java 为什么我的indexOf值没有返回正确的结果?
我正在为一个程序编写这一小部分,我将用java编写一个名字的首字母,我需要确定其中每个空格的位置,以便选择首字母。我正在测试它,以确保空格在直线中的正确位置被看到,但由于某些原因,位置总是出错!请帮帮我Java 为什么我的indexOf值没有返回正确的结果?,java,string,methods,indexof,Java,String,Methods,Indexof,我正在为一个程序编写这一小部分,我将用java编写一个名字的首字母,我需要确定其中每个空格的位置,以便选择首字母。我正在测试它,以确保空格在直线中的正确位置被看到,但由于某些原因,位置总是出错!请帮帮我 import java.util.Scanner; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println(&q
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个单词时,我发现结果是4919。有人知道我的代码有什么问题吗?替换
int space1 = name.indexOf(" ", space) + space+1;
与
因为返回指定子字符串第一次出现的字符串内的索引,从指定索引开始
演示:
public class Main {
public static void main(String[] args) {
String name = "Arvind Kumar Avinash";
int space = name.indexOf(" ");
int space1 = name.indexOf(" ", space + 1);
System.out.println(space + ", " + space1);
}
}
6, 12
输出:
public class Main {
public static void main(String[] args) {
String name = "Arvind Kumar Avinash";
int space = name.indexOf(" ");
int space1 = name.indexOf(" ", space + 1);
System.out.println(space + ", " + space1);
}
}
6, 12
“Jeff Luiz Jeff Luiz”
的预期输出是什么?要获取第二个空格的索引,需要使用int space1=name.indexOf(“,空格+1”)代码>