0

我有一个至少包含三个元素的锯齿状数组,我需要解析前五个元素,用空格填充任何空值。

 // there will ALWAYS be three elements 
String whiconcatC = scrubbedInputArray[0];
String whiconcatD = scrubbedInputArray[1];
String whiconcatE = scrubbedInputArray[2];

 // there MAY be a fourth or fifth element
if (scrubbedInputTokens > 3) {
String whiconcatF = scrubbedInputArray[3];
} else {
String whiconcatF = " ";
}
 //
if (scrubbedInputTokens > 4) {
String whiconcatG = scrubbedInputArray[4];
} else {
String whiconcatG = " ";
}

虽然上面的代码在编译期间不会产生错误,但后续行引用whiconcatFwhiconcatG将在编译期间出错cannot find symbol

我尝试使用forEachand StringTokenizer(在将数组转换为分隔字符串之后),但无法弄清楚如何在点 4 和 5 中没有值的实例中使用默认值。

我无法想出任何其他方法来做到这一点,也无法想出为什么我的 if 逻辑失败了。建议?

4

2 回答 2

5

那是因为它们具有本地范围并在括号内定义。因此,当您关闭支架并且无法到达时,模具。在外面定义它们,你应该没问题。

String whiconcatC = scrubbedInputArray[0];
String whiconcatD = scrubbedInputArray[1];
String whiconcatE = scrubbedInputArray[2];
String whiconcatF = "";
String whiconcatG = "";


// there MAY be a fourth or fifth element
if (scrubbedInputTokens > 3) {
whiconcatF = scrubbedInputArray[3];   
} else {
whiconcatF = " ";
}
//
if (scrubbedInputTokens > 4) {
whiconcatG = scrubbedInputArray[4];
} else {
whiconcatG = " ";
}
于 2013-10-16T11:56:08.393 回答
4

声明whiconcatF外部,if-else让他们在外部可见。if目前,两个 String 变量都在且仅在范围内else。一旦它移到 上面if,它就会获得方法级别的范围(我希望整个代码段不在任何其他块中),因此您可以在方法中的任何位置访问它们。

String whiconcatF = " "; // Default value
if (scrubbedInputTokens > 3) {
    whiconcatF = scrubbedInputArray[3];
}

String whiconcatG = " "; // Default value
if (scrubbedInputTokens > 4) {
    whiconcatG = scrubbedInputArray[4];
}

由于您现在有默认值,因此您可以删除else.if

于 2013-10-16T11:54:40.327 回答