2013-09-25 59 views
0

我正在研究我的第二個更大的編程項目,但我陷入了困境。我正在使用處理這個項目。從處理中的配置文件中檢索信息

我想要做的是從包含以下行的外部文本文件中檢索信息(用於將某個調色板分配給某個水平條形圖的「行」),使用java.util.Properties類:

formating = p;p;n;n 

我的代碼片段導入它看起來像這樣(使用名爲「導入」一類處理的BufferedInputStream等):

Import imp = new Import(); 
Properties properties = imp.importSettings(); 

下一步從文本文件中讀取'formating'行並放入它轉換爲一個四元素字符串數組,使用分號作爲分隔符。

String[] formating = properties.getProperty("formating").split(";"); 

我期待這個字符串數組是等同於一個我會用我的源代碼中創建它得到:

String[] formating2 = {"p", "p", "n", "n"}; 

但事實並非如此。它已經嘗試了很多東西,包括在我的String數組的每個元素中檢查不需要的字符(空格),將我的文本文件或用於比較的字符轉換爲Unicode,將字符串數組的元素轉換爲字符。

我似乎什麼無法得到工作如下比較:

for(int i=0;i < formating.length;i++){ 
println(formating[i]==formating2[i]); 
} 

返回的for循環的每個迭代「假」。

我敢肯定這只是一些菜鳥的錯誤,但如果有人能指引我走向正確的方向,那將會很好。提前致謝!

尼克

回答

2

使用==比較字符串是不是安全的,因爲字符串是可能不同的對象和比較它們,無論它們是否包含相同的「文本」不比較文本,但對象。所以,你應該嘗試一下這樣的:

println(formating[i].equals(formating2[i])); 

,或者如果你想避免多餘的空格和tab都在一起,你也可以這樣做:

println(formating[i].trim().equals(formating2[i].trim()));