小杨加油 2020-03-08 17:12 采纳率: 0%
浏览 276

用java写的模式匹配,运行结果一直是错的,不知道问题出在哪,球球了

不知道哪里不对,结果一直是错的

public class BF{
 public static int bf_cmp(String S, String T){
  int m=T.length();//T长
  int n=S.length();//S长
  int i,j;//记录主串下一次比较起始位置
  for(i=0; i<m-n; i++) {
  j=0;
  while(j<n && T.charAt(i+j)==S.charAt(j)) {//查找满足条件的
   j++;
  }
  if(j==n) {
   return i; //返回模式在文本中的开始位置
  }
  }
  return -1; 
 }
 public static void main(String[] args) {
  int pos=0;
  pos = bf_cmp("abcdefgh","fgh");
  if(pos != -1)
  System.out.print("T在S中第:"+pos+"个位置");
  else
  System.out.print("不匹配");  
 }
}

  • 写回答

2条回答 默认 最新

  • Json-Huang 2020-03-08 19:36
    关注

    试试下面的看看

    public static int bf_cmp(String S, String T) {
            int m=S.length();//T长
            int n=T.length();//S长
            int i,j;//记录主串下一次比较起始位置
            for(i=0; i<m; i++) {
                j=0;
                while(j<n && S.charAt(i)==T.charAt(j)) {//查找满足条件的
                    j++;
                    i++;
                }
                if(j==n) {
                    return i-j; //返回模式在文本中的开始位置
                }
            }
            return -1;
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号