关于JAVA字符串提取下标问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JAVA字符串提取下标问题相关的知识,希望对你有一定的参考价值。

public static void main(String[] args)
Scanner input = new Scanner (System.in);
System.out.println("请输入一段字符:");
String aa=input.next();
System.out.println("请输入你所要查找的字符:");
String find=input.next();

int index=-1;

System.out.print("出现的位置:");

for(int i=0;i<aa.length();i++)
index=aa.indexOf(find,index+1);
if(index!=-1)
System.out.print(index+"\t");
aa=aa.substring(index-1);

else if(index==-1)
break;







为什么我的这段话输入的再多同样的 到查找最后的就不输出。。。INDEX就直接等于-1跳出了。。。=。=
例如输入“青春无悔青春无悔青春无悔青春无悔"
查找“春”字
正确结果为:1 5 9 13

为什么我的代码只出现倒 1 5 9
搜索13位的时候跳循环。

请大家帮忙修改!

不要用字符串长度来做循环

int index = aa.indexOf(find);
while(index != -1)

System.out.println(index);
index = aa.indexOf(find, index+1);
参考技术A index = aa.indexOf( find, index + 1 );

这句话有问题,因为aa已经在下边被substring了,而index还是按照原来的长度计算的,解决的办法很多也很简单,自己想想就知道了

以上是关于关于JAVA字符串提取下标问题的主要内容,如果未能解决你的问题,请参考以下文章

Java解析truetype字体以将每个字符提取为图像及其代码

用Java从任意给定的身份证号码中提取此人的出生日期

java String类字符串

Vue 截取字符串substring()substr()

关于JAVA的问题:如何将BufferedImage转换为Image

java如何在String数组中取得指定内容的下标?