使用处理并在我的阵列上获取意外的令牌。 #hackathon

时间:2016-02-20 23:08:08

标签: debugging processing

 
String[] files= {};

int[] fileNumber = {0};
String commandPromptTxt = "";
    String CPTDummy = "";
String blankDummy = "";
String[] currentFile = {};
void makeFile(String[] file, int fileNum, String name1, int level1, int[]parents1, int[] children1, String type1) {
  //Warning if you make a file and use the same file number more than once you will override the file

  files[fileNum]= {"10"};
};

所以我在处理过程中有一段惊人的代码,我收到错误unexpected token:{我也说files[fileNum] = {};,即使我在括号中输入值,我也会得到同样的错误。有什么想法解决这个问题?感谢。

1 个答案:

答案 0 :(得分:1)

为什么要包含括号?

您使用的语法是数组初始值设定项。你在这里正确使用它:

String[] files= {};

这会将您的files变量初始化为空数组。您还可以在此处正确使用语法:

int[] fileNumber = {0};

这会将fileNumber变量初始化为具有单个索引的数组,并且该索引中的值为0

这条线不再有意义:

files[fileNum]= {"10"}

首先,您已将files变量初始化为数组且索引为零。这意味着即使这会编译,你也会获得ArrayIndexOutOfBoundsException,因为你正在尝试使用没有任何数组的索引。

其次,您滥用了数组初始化语法。我很确定你不希望你的数组的索引也是数组,否则你必须让它们成为2D数组。

所以,总结一下,你需要做两件事:

1:初始化数组以实际拥有索引。像这样:

String[] files = new String[10]; //array with 10 indexes

2:停止滥用数组初始化语法,只是将值传递给数组索引:

files[fileNum]= "10";

尽管如此,您最好还是使用ArraysLists。那么你不需要知道你提前有多少索引,你可以简单地调用add()函数来添加它们。

可以在the Processing reference找到更多信息。