从Processing中的配置文件中检索信息

时间:2013-09-25 10:21:53

标签: java processing

我正在开展我的第二个更大的编程项目,而且我遇到了困难。我正在为这个项目使用Processing。

我要做的是使用java的实例从包含以下行的外部文本文件中检索信息(用于将某个调色板指定给水平条形图的各个'行') .util.Properties类:

formating = p;p;n;n

我导入它的代码片段如下所示(使用名为'Import'的类来处理BufferedInputStream等):

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

下一步从文本文件中读取“格式化”行,并使用分号作为分隔符将其放入四元素字符串数组中。

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

我期望这个String数组与我在源代码中使用以下内容创建的相同:

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

但事实并非如此。它已经尝试了很多东西,包括在我的String数组的每个元素中检查不需要的字符(例如空格),将我的文本文件或我用于比较的字符转换为Unicode,将String数组的元素转换为Chars。

我似乎无法工作的是以下比较:

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

为for循环的每次迭代返回'false'。

我确定这只是一个新手的错误,但如果有人能指出我正确的方向会很好。提前谢谢!

尼克

1 个答案:

答案 0 :(得分:2)

使用==比较字符串是不安全的,因为字符串可能是不同的对象并进行比较,无论它们是否包含相同的“文本”,都不会比较文本而是比较对象。所以,你应该这样试试:

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

或者如果你想避免多余的空格和标签,你也可以这样做:

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