在java中搜索模式

时间:2012-12-05 06:43:33

标签: java

好吧,伙计们这是一种作业......但是你的帮助将不胜感激。

对不起以前不完整的问题...我是新人,所以请不要介意......

我有一个字符串,例如,“你怎么认识你”,我想要比较的字符串是“是”。

现在的问题是找到“是”的出现,如果它出现为“aare”,它会被忽略,因为它完全变成一个不同的词,如果它显示为“你是一个”,它被接受因为'你'将被视为一种不同的模式而'又一次'被视为另一种模式,如果它看起来像“uare”那么它被拒绝,因为它形成了一个像空格词空间词这样的特定模式......所以你也将成为一个'是'的一部分,因此它应该被拒绝'如果它显示为“你是”它被接受并且“你是”也被接受。

  • “aare”被忽略
  • “你是一个”它被接受
  • “你好”被拒绝
  • “你知道”它被接受了
  • “你也是”

我尝试了以下代码:

public class testPattern1 {

    public static void main(String args[])
    {
        String a="How aare yoar u a r e yo ar e";
        String compare="are";


        int i,temp=0;
        for(i=0;i<a.length();i++)
        {
            if (a.charAt(i)==compare.charAt(0))
            {
                temp=i;
                temp++;

                for(int d=temp;d<a.length();)
                {
                    while(a.charAt(temp)==' ')
                    {
                        temp++;
                    }

                    if(a.charAt(temp)==compare.charAt(1))
                    {
                        temp++;
                    }
                    else
                    {
                        break;
                    }
                    while(a.charAt(temp)==' ')
                    {
                        temp++;
                    }
                    if(a.charAt(temp)==compare.charAt(2))
                    {
                        System.out.println("matched at"+temp);
                    }
                    else
                    {
                        System.out.println("not matched at"+temp);
                    }

                }

            }


        }

    }

}

希望你们现在明白这个问题..

2 个答案:

答案 0 :(得分:0)

    String line = "How aare yoar u a r e yo ar e";
    String pattern="are";
    String arraySt[]= line.split("\\s+");
    for(String temp :arraySt)
        if(temp.equals(pattern))
            System.out.println("Found");

答案 1 :(得分:0)

检查这是否合适。

public static void main(String args[])
{
String line = "how aare you a re yo u a r e you ar e you a r e";

String [] occurence ={" are","a re","ar e","you a r e"};
int total = 0;
for(String occ:occurence){
     int size = (line.split(occ)).length;
     if(line.contains(occ) && !line.startsWith(occ) &&  !line.endsWith(occ)){
         size = size-1;  
     }else if(!line.contains(occ)){
         size = 0; 
     }
        System.out.println(occ+" "+ (size));
        total=total+size ;

}

System.out.println("Total Ocuurence "+total);


}