标题: 获取一个字符串在另一个字符串中出现的次数,求指导 [打印本页] 作者: xxyyyzzzz 时间: 2015-9-13 12:10 标题: 获取一个字符串在另一个字符串中出现的次数,求指导 public class StringTese2 {
public static void main(String[] args) {
String s = "abcssdockssfdfdkssfdjfkdsshjfuidfssdsf";
String str ="ss";
int x = getStringCount(s,str);
System.out.println(x);
}
public static int getStringCount(String s,String key) {
int count = 0;
while(true){
if (s.contains(key)) {
int x =s.indexOf(key);
s = s.substring(x,s.length());
count++;
}else {
break;
}
}
return count;
}
}
作者: xxyyyzzzz 时间: 2015-9-13 12:11
哪里出现错误了?作者: Anmyre 时间: 2015-9-13 14:07
while(true){
if (s.contains(key)) {
int x =s.indexOf(key);
s = s.substring(x,s.length());
count++;
}else {
break;
}
}
死循环, int x =s.indexOf(key); 获取到0,然后造成s内容一直都是无法修改,变成了死循环,看不到结果作者: xxyyyzzzz 时间: 2015-9-13 14:27
那该如何改呢?作者: Anmyre 时间: 2015-9-13 17:55
你的 String s = "abcssdockssfdfdkssfdjfkdsshjfuidfssdsf"; 在获取 int x =s.indexOf(key); x永远都是0,那你把字符数splite掉啊 再处理作者: 霹雳三口组 时间: 2015-9-13 21:45
截取的方式处理一下,应该可以了,见代码; s = s.substring(x+key.length(),s.length());
public class StringTese2 {
public static void main(String[] args) {
String s = "abcssdockssfdfdkssfdjfkdsshajfuidfssdsf";
String str ="f";
int x = getStringCount(s,str);
System.out.println(x);
}
public static int getStringCount(String s,String key) {
int count = 0;
System.out.println(s+"----------------");
while(s.contains(key)){
if (s.contains(key)) {
int x =s.indexOf(key);
s = s.substring(x+key.length(),s.length());
count++;
}else {
break;
}