字符串函数无法正常工作

时间:2013-04-09 05:46:38

标签: java

这是我的程序。它不应该打印以单词“LTP”开头的句子或包含单词“TRAILING”的句子,但它不会这样做。我不明白为什么。请帮助我。

import java.io.*;

public class FileInputDemo {
    public static void main(String args[]) {
        // args.length is equivalent to argc in C
        try {
            // Open the file that is the first
            // command line parameter
            FileInputStream fstream = new FileInputStream(
                    "C:\\Documents and Settings\\work\\Desktop\\New Folder\\New Folder\\02Apr2013log1.txt");
            // Convert our input stream to a
            // DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            // Continue to read lines while
            // there are still some left to read
            while (in.available() != 0) {
                String s=in.readLine();
                // Print file line to screen
            if(s.startsWith("LTP") || s.contains("TRAILING"))
            {
                continue;
            }

            System.out.println(in.readLine());
            }

            in.close();
        } catch (Exception e) {
            System.err.println("File input error");
        }
    }
}

这是输出

Long trade Managers in list (from Limit removal process) 2
LTP 9708.0 Current Stop 9723.0 for Order ID BAA0001 Mode:- TRAILING
9711.0 9716.0 9707.0 9707.0 9710.62
BullishFactor [openBullishFactor=NEUTRAL, closeBullishfactor=BEARISH, closeToOpenFactor=MODERATE_BEARISH]
BarSharing [sharingType=LLLH, bodySharing=0.44]
LTP 9707.0 Current Stop 9717.0 for Order ID BAA0001 Mode:- TRAILING

2 个答案:

答案 0 :(得分:3)

System.out.println不应该打印字符串s吗?

 while (in.available() != 0) {
     String s=in.readLine();

     if(s.startsWith("LTP") || s.contains("TRAILING"))
     {
         continue;
     }

     System.out.println(s);
 }

如果您正在打印in.readLine(),那么您刚刚阅读的文件(存储在s中)之后的行可能包含“TRAILING”或以“LTP”开头。

答案 1 :(得分:0)

请勿在{{1​​}}中再次阅读该行。它将读取下一行而不检查LTP | TRAILING可在线上获得。将其替换为System.out.println(in.readLine());