查找字符串

String str1 = "nihaoksdoksad";
String str2 = "ok";
int total = 0;
for (String tmp = str1; tmp != null&&tmp.length()>=str2.length();){
  if(tmp.indexOf(str2) == 0){
    total ++;
  }
  tmp = tmp.substring(1);
}
System.out.println(str1+"中含有"+total+"个"+str2);
上面我写的算法是字符可以覆盖的查找:
下面给你一种不允许字符覆盖的查找:
String str1 = "nihaokokosdokosad";
String str2 = "oko";
int total = 0;
for (String tmp = str1; tmp != null&&tmp.length()>=str2.length();){
  if(tmp.indexOf(str2) == 0){
    total ++;
    tmp = tmp.substring(str2.length());
  }else{
    tmp = tmp.substring(1);
  }
}

System.out.println(str1+"中含有"+total+"个"+str2);




String s="aass";
 String y="111aaassbc222abc333abcabc";
 
 System.out.println(new Sql().countNumber(s,y));
}
public int countNumber(String s,String y){    //统计方法
 int count=0;
 String [] k=y.split(s);                      //将字符串通过s断开返回数组k
 if(y.lastIndexOf(s)==(y.length()-s.length())) //如果y最后一个包含s的索引等于y的长度-要的长度,那么出现的次数就等于k的长度
  count=k.length;
 else
  count=k.length-1;//否则k长度-1,因为s不是单字符是多个
 if(count==0)
  System.out.println ("字符串\""+s+"\"在字符串\""+y+"\"没有出现过");
 else
  return count;
 return -1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值