2013-09-25 68 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()));