2017-05-02 85 views
0

我有一些麻煩來使某個條件成爲或。 看看我的問題。如果我執行的是,它的工作原理:在if語句中遇到問題

System.out.println(p_fileAccess.readLine().trim().startsWith("^ Item Type")); 

//它在說真實的,但如果我這樣做

System.out.println("data :"+(p_fileAccess.readLine().trim().startsWith("* Item Type")||p_fileAccess.readLine().trim().startsWith("^ Item Type "))); 

它在說假 你能幫助我嗎?

+1

存在'startsWith( 「^項目類型 」)' –

+0

我想'p_fileAccess.readLine()的一個空白。修剪()。startsWith(「 ^項目類型」)'返回一個字符串,否則你不會能夠將它與另一個字符串連接起來。所以,你正在申請或字符串,什麼是絕對錯誤的。 – user7185318

+0

這是相同的問題 – kazor02x

回答

2

第一個條件讀取第一行,第二個條目再次讀取(第二行)。

試試這個:

String line = p_fileAccess.readLine().trim(); 
System.out.println("data:" + (line.startsWith("* Item Type") || line.startsWith("^ Item Type "))); 
+1

正如我寫給OP的評論:'startsWith(「^ Item Type」)中有一個空格,所以第二部分永遠不會是'true'(由於'trim') –

+0

你是真正的神 – kazor02x

+0

@ StefanWarminski,文件格式爲 ^物品類型type1 ^物品類型type2 *物品類型type3 所以沒關係。問題在於比較不同的路線。 –

1

假設p_fileAccess是一個緩衝閱讀器或類似的,你的代碼第二行查看文件在兩個不同的線路。第一個不以「* Item Type」開頭,第二個不以「^ Item Type」開頭。