黑马程序员技术交流社区
标题:
获取字符串中子串个数。。不出结果
[打印本页]
作者:
李兆宁
时间:
2012-10-2 14:11
标题:
获取字符串中子串个数。。不出结果
本帖最后由 李兆宁 于 2012-10-2 16:33 编辑
class StrTest
{
public static void main(String[] args)
{
String str = "abkkdfkkegegsdkkdsagfkk";
int i = getSubCount2(str,"kk");
sop("i="+i);
}
public static int getSubCount2(String str,String key)
{
int count = 0;
int index = 0;
while ((index=str.indexOf(key,index))!=-1);
{
sop("index="+index);
index = index + key.length();
count++;
}
return count;
}
public static void sop(String str)
{
System.out.println(str);
}
}
复制代码
编译无错,运行正常,就是不出结果。。求教错误之处。。
上网不方便,设置解决可能会晚点。。
作者:
黄小贝
时间:
2012-10-2 14:22
目测 while ((index=str.indexOf(key,index))!=-1);
这一句多了个分号
作者:
古银平
时间:
2012-10-2 14:34
public static int getSubCount(String str,String key)
{
//key 指定要找的字符串
int count = 0; //计数器记录出现的次数
int index = 0; //每次出现指定字符串的索引
while((index= str.indexOf(key,index))!=-1) // 循环找不到指定字符串,返回-1时终止循环
{
sop("index="+index);
index = index + key.length(); //index+key.length,下次将会从出现指定字符串之后开始查找
count++;
}
return count;
}
public static void main(String[] args)
{
String str = "kkabkkcdkkefkks";
System.out.printl("count="+getSubCount_2(str,"kk"));
}
复制代码
这个行的
作者:
黑马-王燚
时间:
2012-10-2 15:15
第15行 :多了一个分号! 所以不行,程序进入死循环了
我自己也写了个方法,分享下
public static void main(String[] args)
{
// TODO 自动生成的方法存根
String str = "abkkdfkkegegsdkkdsagfkk";
int index=getCount(str, "kk");
System.out.println(index);
}
public static int getCount(String str,String key)
{
int count=0;
while(str.indexOf(key,0)!=-1)
{
count++;
str=str.substring(str.indexOf(key,0)+key.length(), str.length());
}
return count;
}
作者:
何小红
时间:
2012-10-2 15:31
做程序时一定要谨慎再谨慎啊{:soso_e127:}
作者:
冯超
时间:
2012-10-2 15:34
不知道为什么 你那代码卡死我了
我就自己帮你写了个。 关键看你怎么用indexOF这个函数
public class test5 {
/**
* @param args
*/
public static void main(String[] args) {
String str = "kkajkdkklsjfkljskkfkk";
int i = subString(str, "kk");
System.out.println(i);
}
public static int subString(String str, String key)
{
int count = 0;
int a = str.indexOf(key, 0);
while(a != -1)
{
count++;
a = str.indexOf(key, a+2); //每查一个 所言位置自加2个 为什么是2 ? 自家想
}
return count;
}
}
作者:
李兆宁
时间:
2012-10-2 16:32
我了个去,为这个分号,,,感觉程序进入了死循环,怎么就没发现这个分号呢!
唉! 问题解决,谢谢各位。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2