String[] input;
String output;
void setup() {
selectInput("Select a file to process:", "fileSelected")
println("########");
}
void draw() {
println(output);
}
void fileSelected(File selection) {
if(selection == null) {
println("Window was closed or the user hit 'cancel.'");
} else {
String filepath=selection.getAbsolutePath();
input=loadStrings(filepath);
println(input);
input.equals(output);
println(output);
}
}
很抱歉,如果它看起来很草率,我正在手机上键入它,并且滚动查看我编写的内容时遇到问题。我也无法获得具有足够数量空格的代码来满足“缩进代码纳粹”的代码,因此我不得不删除花括号。我仍然没有弄错,但是经过30分钟的战争,它最终还是接受了这一点。
我正在从事一个游戏项目,该项目需要将大型整数矩阵加载到2D数组中。我正在使用处理3.4,并且正在使用selectInput()
方法(如参考资料中所示),并使用loadStrings()
将文件的内容加载到字符串中,如下所示。
我无法运行此代码,因为如果我尝试打印“输入”的内容,则会收到讨厌的“空指针异常”。我不知道为什么会这样,尤其是因为变量是全局变量。因此,我声明使用“输出”变量来解决空指针问题。我打印了input[]
和output
的输出,以便可以看到它们已经加载,然后将println(output);
放在draw()
中以查看是否可以访问它们。我得到的只是打印到控制台上的“ null”(不带引号)。
看来output
字符串始终为空。即使我确定已将其声明为“全局级别”变量,该变量仍为null。我需要在公共/全局级别上可以访问该变量,以便游戏代码的其余部分可以将字符串转换为矩阵(由于它并不重要,因此未在此处包括在内)。
如何加载此字符串,以便其余代码可以使用它?我在做错什么吗?
答案 0 :(得分:0)
输出字符串始终为空,因为您没有将输入复制到其中,equals方法不起作用。我修复了您的代码,效果很好
String[] input;
String output;
void setup() {
selectInput("Select a file to process:", "fileSelected");
println("########");
}
void draw() {
if(output!=null)
println(output);
}
void fileSelected(File selection) {
if(selection == null)
{
println("Window was closed or the user hit 'cancel.'");
}
else {
String filepath=selection.getAbsolutePath();
input=loadStrings(filepath);
for(int i=0;i<input.length;i++)
output+=input[i]+"\n";
}
}