对不起以前不完整的问题...我是新人,所以请不要介意......
我有一个字符串,例如,“你怎么认识你”,我想要比较的字符串是“是”。
现在的问题是找到“是”的出现,如果它出现为“aare”,它会被忽略,因为它完全变成一个不同的词,如果它显示为“你是一个”,它被接受因为'你'将被视为一种不同的模式而'又一次'被视为另一种模式,如果它看起来像“uare”那么它被拒绝,因为它形成了一个像空格词空间词这样的特定模式......所以你也将成为一个'是'的一部分,因此它应该被拒绝'如果它显示为“你是”它被接受并且“你是”也被接受。
我尝试了以下代码:
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);
}
}
}
}
}
}
希望你们现在明白这个问题..
答案 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);
}