Vergleich von string zu array von strings verwenden .equals () - Methode

Ich versuche zu vergleichen, die ein array von Zeichenfolgen (eine csv-Datei von Börsen-Symbole importiert wurde, in eine arraylist und dann in ein array), aber es scheint nicht zu funktionieren. Bin ich nicht zu vergleichen mit richtigen Daten geben oder so? Hier ist mein code:

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

Jede Hilfe wird sehr geschätzt

  • Da bist du schon mit Scanner, warum dann nicht auch Sie, dass zum Lesen der Datei?
  • Nicht ganz sicher, aber das element array ist ein Objekt, array, Object[].(könnte ein problem werden, wenn Sie vergleichen-Objekt mit String -) warum konvertieren arrayList-array sowieso besser Schleife durch die arraList. for(String element:arrayList)
  • Hinweis: Jeder Aufruf nextToken() voranzutreiben, um das nächste token. Wenn Sie kommentieren Sie das println in der inneren Schleife, besteht die Liste nur noch halb so groß und die Werte ausgedruckt werden nicht in der Liste.
InformationsquelleAutor Sackling | 2011-03-28
Schreibe einen Kommentar