java - 为什么在 Java 中 "!sort.getTestIssue().equals("Y")"不从 nasdaqlisted.txt 中删除测试股票?

标签 java string stringtokenizer

在我的高级 java 类(class)中,我们将编写一个应用程序,该应用程序读取由管道(“|”)分隔的 .txt 文件(“nasdaqlisted.txt”),并提取所有具有测试问题的股票=“Y”。我的应用程序读取我的文件,但仍然打印出测试用例。我试图使用 if 语句将 testIssue 中存储的内容与“Y”进行比较,但我不明白为什么这不起作用。这是我的源代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;

public class readTextFile
{
    private Scanner input = null;
    private File file = null;

    public void openFile()
    {
        try
        {
            file = new File("nasdaqlisted.txt");
            input = new Scanner(file);
        }
        catch (FileNotFoundException fileNotFoundException)
        {
            System.err.println("Error opening file.");
            System.exit(1);
        }
    }

    public void readFile()
    {
        sortTextFile sort = new sortTextFile();
        try
        {
            try
            {
                file = new File("nasdaqlisted.txt");
                input = new Scanner(file);
            }
            catch (FileNotFoundException fileNotFoundException)
            {
                System.err.println("Error opening file.");
                System.exit(1);
            }


            while (input.hasNext())
            {
                StringTokenizer st = new StringTokenizer(input.nextLine(), "|");
                while (st.hasMoreTokens())
                {
                    input.nextLine();
                    sort.setSymbol(st.nextToken());
                    sort.setSecurity(st.nextToken());
                    sort.setMarket(st.nextToken());
                    sort.setTest(st.nextToken());
                    sort.setFinancial(st.nextToken());
                    sort.setSize(st.nextToken());

                    if (!sort.getTestIssue().equals("Y"))
                    {
                        System.out.println(sort.getSymbol());
                        System.out.println(sort.getSecurityName());
                        System.out.println(sort.getTestIssue());
                    }
                }
            }
        }
        catch (NoSuchElementException noSuchElementException)
        {
            System.err.println("Improperly formed file.");
            System.exit(1);
        }

    }
    public void closeFile()
    {
        if (input != null)
        {
            input.close();
        }
    }
}

这是我得到的输出的结尾,测试库存仍在打印:

Security Name: Zalicus Inc. - Common Stock
Test Issue: N
Symbol: ZN
Security Name: Zion Oil & Gas Inc - Common Stock
Test Issue: N
Symbol: ZOLT
Security Name: Zoltek Companies, Inc. - Common Stock
Test Issue: N
Symbol: ZU
Security Name: zulily, inc. - Class A Common Stock
Test Issue: N
Symbol: ZVZZT
Security Name: NASDAQ TEST STOCK
Test Issue: Y
Symbol: ZXYZ.A
Security Name: Nasdaq Symbology Test Common Stock
Test Issue: Y
Improperly formed file.

Process finished with exit code 1

最佳答案

如果System.out.println(sort.getTestIssue());输出“测试问题:Y”,则sort.getTestIssue()不等于"is"。

也许您想使用endsWith或正则表达式或其他东西

关于java - 为什么在 Java 中 "!sort.getTestIssue().equals("Y")"不从 nasdaqlisted.txt 中删除测试股票?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463744/

相关文章:

java - 将泛型与 Jakarta 公共(public)集合缓冲区一起使用

javascript - 如何从字符串中获取映射值?

java - 如何在测试失败后停止运行 TestNG

java - Sprint 事务 - 如果内部事务失败,则需要 REQUIRES_NEW 行为

c# - 带有重载的字符串比较

java StringTokenizer 意外结果

java - 为 StringTokenizer 中的空内容赋值

java - 如何比较从 StringTokenizer 中提取的字符串

java - 如何运行和编译java程序?

java - Java Web 应用程序中的字符串常量与资源包