import java.util.*;
class stringtest
{
public static void main(String []args)
{
char ch;
Scanner scan =new Scanner(System.in);
System.out.println("输入一个字符串:");
String s=scan.next();
System.out.println("输入你要查找的一个字符:");
String s1=scan.next();
char cha[]=s1.toCharArray();
char cha1=cha[0];

    if(checkstring(s,cha1))
    {
     System.out.print("这段字符串中含有此字符!");
    }
    else
     System.out.print("这段字符串中不含有此字符!");
}


public static boolean checkstring(String s,char cha1)
{
int t=0;
int m=s.length()-1;
while(t<=m)
{

if(s.charAt(t)=cha1)
{
return true;
t++;
}
}
return false;
}
}初学,要想在输入的字符串中查找有没有用户输入的字符,
但编译时总是出现
required: variable
found   : value
                        if(s.charAt(t)=cha1)
                                   ^
1 error
为什么哦

解决方案 »

  1.   

    stringtest没有实例化,哪来的cha1
      

  2.   

    if(s.charAt(t)=cha1)
    改成if(s.charAt(t)==cha1)
      

  3.   

    另外这一句return true;
              t++;
    有问题     t++应该在return 语句前面
    改为t++;
    return true;
      

  4.   

    不过把t++;
    放在for循环外面更好
      

  5.   

    将循环体内部改一下
    while(t<=m)
    {

    if(s.charAt(t)!=cha1)
    {

    t++;
    }
    else
    {
    return true;
    }
    }
    return false;
      

  6.   

    谢了
    但我把t++放for循环外边不是就没有对比字符串的第一个字符了么
      

  7.   

    if(s.charAt(t)==cha1)
    ==
    ==
    ==
    ==
    ==
    ==
    ==
    ==
    ==
    ==
      

  8.   

    你把t++放在if{}的后面,这样比较完第一个字符之后,再执行t++