我的行设置如下:
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语句永远不会捕获它们。我确定我犯了一个简单的错误。
由于
答案 0 :(得分:2)
使用equals()方法比较字符串。即。
if (input[0].equals("A")) {
...
答案 1 :(得分:1)
您要在标签字符上拆分字符串。它看起来不像是输入文件中的分隔符。
此外,在String.split的参数中需要第二个反斜杠(&#34; \ t&#34;)。
正如braj在评论中所建议的那样,你应该使用:
line.split("\\s+");
分裂在一个或多个空格上。