import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;public class Read{
public static void main(String[] args) throws Exception{
     File file = new File("user.txt");
     ArrayList<String[]> arr = new ArrayList<String[]>();
     String[] s = {"管理员"," admin"," 123456"};
           
      BufferedReader br = new BufferedReader(new FileReader(file));
      String str;
      while((str=br.readLine())!=null){
            String[] strItems = str.split(" ");
                arr.add(strItems);
         }
          if(arr.contains(s)){
             System.out.print(true);
          }else{
             System.out.print(false);
          }
         
}
}其中file.txt文件中存着  管理员 admin 123456
                        教师 LQ liuqin

解决方案 »

  1.   

    ArrayList的contains方法判断的是是否包含某对象,你创建的String[] s和读取文档然后切分得到strItems能是同一个对象么?
      

  2.   

    数组和数组这么判断相等是不行的
    要么就循环吧,判断两个数组每一个元素是不都相等,相等才说这个数组contain在arr 中
      

  3.   

    楼上讲得对,我改了一下,供参考import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.util.ArrayList;
    import java.util.Iterator; //新加。public class Read
    {
    public static void main(String[] args) throws Exception
    {
    File file = new File("user.txt");
    ArrayList<String[]> arr = new ArrayList<String[]>();
    String[] s = {"管理员"," admin"," 123456"};
      
    BufferedReader br = new BufferedReader(new FileReader(file));
    String str;
       while((str=br.readLine())!=null)
    {
           String[] strItems = str.split(" ");
           arr.add(strItems);
           }
                    //------------- 改动的部分.
    Iterator<String[]> it=arr.iterator(); //迭代取出其中的数组元素
    boolean result=false; //匹配时,为true.
    String[] temp;
    int length; //数组长度.
    while(it.hasNext()&&!result) //没有找到匹配的继续.
    {
    temp=it.next();
    length=temp.length;
    for(int i=0;i<length;i++)
    {
    if(!(temp[i].trim()).equals(s[i].trim())) //去空格后比较。
    {
    result=false; //只要有不相等的,result=false
    break; //结束for循环。
    }
    result=true; //找到相等的元素 result=true.
    }
    }
    System.out.println(result); //输出结果。
    }
    }
      

  4.   


    //把
    if(arr.contains(s)){
      System.out.print(true);
      }else{
      System.out.print(false);
      }//改成
    boolean found = false;
    for (String[] item : arr) {
        if (Arrays.equals(s, item)) {
            found = true;
            break;
        }
    }
    if (found) {
        System.out.print(true);
    } else {
        System.out.print(false);
    }
      

  5.   

    不是同一个对象contains
    public boolean contains(Object o)如果此列表中包含指定的元素,则返回 true。更确切地讲,当且仅当此列表包含至少一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,则返回 true。
      

  6.   

    String[] s = {"管理员"," admin"," 123456"};
    楼主要去掉空格,否则还是false.