0

我目前正在从事我的第二个更大的编程项目,但我陷入了困境。我正在为这个项目使用处理。

我要做的是使用 java.util 的实例从包含以下行的外部文本文件中检索信息(用于将某个调色板分配给水平条形图的各个“线”)。属性类:

formating = p;p;n;n

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

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

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

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

我期望这个字符串数组与我在源代码中使用以下方法创建的数组相同:

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

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

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

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

对于 for 循环的每次迭代都返回“false”。

我敢肯定这只是一些菜鸟的错误,但如果有人能指出我正确的方向,那就太好了。提前致谢!

缺口

4

1 回答 1

2

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

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

或者,如果您想同时避免多余的空格和制表符,您也可以这样做:

println(formating[i].trim().equals(formating2[i].trim()));
于 2013-09-25T12:04:51.100 回答