[英]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.