繁体   English   中英

使用.equals()方法比较字符串与字符串数组

[英]comparing string to array of strings using .equals() method

我正在尝试比较字符串数组(将股票市场代码的csv文件导入到arraylist中,然后转换为数组),但是它似乎无法正常工作。 我不是将其与正确的数据类型进行比较吗? 这是我的代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.ArrayList;

public class search
{
    public static void main(String[] args)
    {
        try
        {
            //csv file containing data
            String strFile = "companylist.csv";

            //create BufferedReader to read csv file
            BufferedReader br = new BufferedReader(new FileReader(strFile));
            String strLine = "";
            StringTokenizer st = null;
            int lineNumber = 0, tokenNumber = 0;

            //create arraylist
            ArrayList<String> arrayList = new ArrayList<String>();

            //read comma separated file line by line
            while ((strLine = br.readLine()) != null)
            {
                lineNumber++;

                //break comma separated line using ","
                st = new StringTokenizer(strLine, ",");

                while (st.hasMoreTokens())
                {
                    //display csv values
                    tokenNumber++;
                    arrayList.add(st.nextToken());
                    //System.out.println("Line # " + lineNumber + ": "+ st.nextToken() + " " + st.nextToken());
                } //end small while

                //reset token number
                tokenNumber = 0;

            } //end big while loop

            //send csv to an array
            Object[] elements = arrayList.toArray();
            /*
            for(int i=0; i < elements.length ; i++)    {    
            System.out.println(elements[i]); 

            } */
            Scanner input = new Scanner(System.in);
            System.out.print("Enter Ticker symbol");
            String sym = input.next();

            for (int i = 0; i < elements.length; i++)
            {
                if (elements[i].equals(sym))
                {
                    System.out.println("match");
                }
            }
        }
        catch (Exception e)
        {
            System.out.println("Exception while reading csv file: " + e);
        }

    }//end main
}//end class

任何帮助是极大的赞赏

首先,请确保您的元素正确填充。 例如-没有任何空格(使用trim()

然后,您可以使用一些更简单的方法: elementsList.contains(sym)

不要使用StringTokenizer ; 而是使用String#split 另外,请确保修剪值(用户输入和每个标记)以解决虚假的空格。 在Java中,类名以大写字母开头。 您永远不会关闭Reader ,这是坏事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM