黑马程序员技术交流社区
标题:
不会啊,为什么打印出来的是29?求解
[打印本页]
作者:
潜伏
时间:
2013-11-16 15:55
标题:
不会啊,为什么打印出来的是29?求解
/*
要求:获取一个字符串A在另一个字符串B中穿线的次数
思路; 1,用indexOf(String,fromIndex)查找B字符串中是否包含子串。
2,接下来从b.length+fromIndex处开始查找。
3,定义一个计数器,用来计算b在a中出现的次数。
*/
class Number1
{
public static void method(String a,String b)
{
int sum=0;
for(int x=0;x<(a.length()-b.length());x++)
{
if(a.indexOf(b,x)!=-1)
sum++;
}
System.out.println(sum);
}
}
class DemoNumber
{
public static void main(String[] args)
{
String a="godonlyhelpthosewhohelpthemselves";
String b="el";
Number1.method(a,b);
}
}
作者:
Weix1992
时间:
2013-11-16 16:27
public int indexOf(String str,
int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。返回的整数是满足下式的最小 k 值:
k >= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
如果不存在这样的 k 值,则返回 -1。
参数:
str - 要搜索的子字符串。
fromIndex - 开始搜索的索引位置。
返回:
指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
复制代码
好好看看文档
作者:
敗唫①輩ふ
时间:
2013-11-16 16:29
本帖最后由 敗唫①輩ふ 于 2013-11-16 16:42 编辑
楼主你把中间循环的那段替换成
for (String tmp = a; tmp != null&&tmp.length()>=b.length();){
if(tmp.indexOf(b) == 0){
sum ++;
}
tmp = tmp.substring(1);
}
复制代码
作者:
段光宇
时间:
2013-11-16 16:46
本帖最后由 段光宇 于 2013-11-16 16:48 编辑
你没有考虑到查询中的字符串变化问题,我是这样解决的,子字符串出现一次,记录一次,接着把父串相应的位数截掉,生成新的父串,再进行查询。
package com.itheima;
/*
要求:获取一个字符串A在另一个字符串B中出现的次数
思路; 1,用indexOf(String,fromIndex)查找a字符串中是否包含子串。
2,接下来从b.length+fromIndex处开始查找。
3,定义一个计数器,用来计算b在a中出现的次数。
*/
class Number1
{
public static void method(String a,String b)
{
int c=0,sum=0;
c=a.indexOf(b);//索引
while(c>=0){//索引大于等于0时,表明b出现一次
sum++;//记录出现一次
if(c+b.length()<a.length()){
a=a.substring(c+b.length(), a.length());//把查询过的长度截掉,生成新的串,继续查。
c=a.indexOf(b);
}
}
System.out.print(sum);
}
}
class DemoNumber
{
public static void main(String[] args)
{
String a="godonlyhelpthosewhohelpthemselves";
String b="el";
Number1.method(a,b);
}
}
复制代码
作者:
Weix1992
时间:
2013-11-16 17:00
public static void method(String a,String b)
{
int sum=0;
int pos = 0;
while(a.indexOf(b,pos) != -1 && pos<=a.length()) {
sum++;
pos = a.indexOf(b,pos);
pos = pos+2;
}
System.out.println(sum);
}
复制代码
稍微改了一下你的代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2