字符串数组中的字符 - Java

时间:2014-04-23 21:44:33

标签: java parsing

我的行设置如下:

A a-type_value
B b-type_value
C c-type_value
B b-type_value
C c-type_value
C c-type_value
A a-type_value

我的Java代码正在读取类似于以下文件的行:

BufferedReader reader = new BufferedReader(new FileReader("C:\\Path\\to\\File.txt"));
        try {
          while (true) {
            String line = reader.readLine();
            if (line == null) break;
            String[] fields = line.split("\t");
            LineProcess(fields);
          }
        } finally {
          reader.close();

LineProcess()方法如下所示:

public static void LineProcess(String[] input)
    {
        int result = 0;
        String datetime = null;
        System.out.println(input[0]);
        if (input[0] == "A") {
            result = Integer.parseInt(input[1]);
            System.out.println(result);
        }
        if (input[0] == "B") {
            bvalue = input[1] + input[2];
            System.out.println(bvalue);
        }
        if (input[0] == "C") {

            System.out.println(input[1]);
        }
        //System.out.println(input.length);
        //for(int i = 0; i < input.length; i++) 
        //  System.out.print(input[i] + " ");
        //System.out.println("");
    }

虽然我的输入中有A,B和C,但是if语句永远不会捕获它们。我确定我犯了一个简单的错误。

由于

2 个答案:

答案 0 :(得分:2)

使用equals()方法比较字符串。即。

if (input[0].equals("A")) {
...

答案 1 :(得分:1)

您要在标签字符上拆分字符串。它看起来不像是输入文件中的分隔符。

此外,在String.split的参数中需要第二个反斜杠(&#34; \ t&#34;)。

正如braj在评论中所建议的那样,你应该使用:

line.split("\\s+");

分裂在一个或多个空格上。