它不在第一个循环内并且仅打印我仅在循环外

时间:2020-09-05 08:55:48

标签: java for-loop

以下代码未给出任何错误。调试后,我发现它不在第一个循环内。

 package string_pattern;

    public class Naive {
    
        public static void main(String[] args)
        {
            String pattern="This is a text book";
            String text="text";
            child obj=new child();
            obj.search(pattern, text);
        }
    }

    
 class child{
    public void search(String pat,String text)
    {
        int m,n;
        m=pat.length();
        n=text.length();
        System.out.println("i am outside loop");
        for(int i=0; i<= (n-m); i++)
        {
            int j;
            System.out.println("i am inside first loop"); 
            for(j=0;j<m;j++)
            {
                if(text.charAt(i+j) != pat.charAt(j))
                {
                System.out.println("OVER HERE");
                    break;
                
                }
                if(j==m)
                    System.out.println("pattern found at pos" + i);
            }
        }
    }

}

1 个答案:

答案 0 :(得分:1)

您执行以下操作:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^vegetable\.abc\.com\/vegetable\/index\.php [NC]
RewriteRule ^$ https://vegetable.abc.com/index.php [R=302,L]

问题是<VirtualHost *:80> ServerAlias *.example.com VirtualDocumentRoot /var/www/%1/ </VirtualHost> 的长度为4,而m=pat.length(); n=text.length(); 的长度更长。因此,当您执行这样的循环-> text时,最终会得到负数。由于0大于任何负数,因此您永远不会进入循环。