如果字符串中'*'之前和之后的字符相同,则返回true

时间:2018-03-27 04:32:48

标签: java

我是Java的初学者 我不明白为什么我的if语句错了

public boolean sameStarChar(String str)
     {
         int len = str.length();

         for(int x = 1; x < length-1; x++)
           {
              if (str.charAt(x) == '*' && str.charAt(x-1) == str.charAt(x+1))
                return true;
           }
              else 
             return false;
} 

谢谢

1 个答案:

答案 0 :(得分:0)

首先从x=0开始循环,因为0中的第一个元素的索引。

str.charAt(x-1) == str.charAt(x+1) 

仅当*的上一个和下一个字符相同时,此条件才返回true。

public boolean sameStarChar(String str)
 {
     int len = str.length();
     int no=0,yes=0; 
     for(int x = 0; x < len-1; x++)
       {
         if (str.charAt(x) == '*')
         {
            if((str.charAt(x-1)>='a' && str.charAt(x-1)<='z') && (str.charAt(x+1)>='a' && str.charAt(x+1)<='z'))
            {
              yes++;
            }  
            else{
              no++;
            }
         }
       }
    if(no>0)
        return false;
    else 
        return true;

}

我所做的是使用标志变量noyes并跟踪您的状况。

希望这有帮助。