我是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;
}
谢谢
答案 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;
}
我所做的是使用标志变量no
和yes
并跟踪您的状况。
希望这有帮助。