所以,我有一个问题,但我真的不知道究竟是什么导致它。我有一个非常有效的程序,但它无法承受每一个条目。为了解决这个问题,我添加了一个try-catch块。在更改之前,我只能在try块中看到两行,而不是所有try-catch代码。 到现在为止,我认为一切都应该是正确的。但是当我尝试编译我的代码时,我收到了一个“”错误:找不到符号(变量:workingPer)“”。我认为try块总是被执行,为什么这个变量没有被定义?我已经研究过其他类似的问题,但找不到解决方案。
注意:这是代码的一部分,我只是为了使问题更容易看到。但如果您需要更多代码,请告诉我。
try
{
String[] workedPer = newPer.split("=");
workedPer[1] = workedPer[1].substring(0, workedPer[1].length() -1);
}
catch (ArrayIndexOutOfBoundsException ex)
{
System.out.println("Invalid Entry. Program will stop now...");
System.exit(1);
}
for (Material mat : readyContent)
{
if ((mat.category).equals(workedPer[0]))
{
checker = true;
}
}
答案 0 :(得分:1)
因为import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args)
{
int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13};
int even=0;
int odd=0;
int[] Even = new int[13];
int[] Odd = new int[13];
for ( int i=0; i<array.length; i++)
{
if (array[i] % 2 == 0)
{
Even[even++] = array[i];
}
else
{
Odd[odd++] = array[i];
}
}
for ( int i=0; i<array.length/2; i++ )
{
int temp = array[i];
array[i] = array[array.length-(1+i)];
array[array.length-(1+i)] = temp;
}
System.out.println("Array after reverse: \n" + Arrays.toString(array));
System.out.println("Even: "+even+" ");
System.out.println(Arrays.toString(Even));
System.out.println("Odd: "+odd+" ");
System.out.println(Arrays.toString(Odd));
}
}
变量的范围仅限于workedPer
阻止。
您需要将代码更改为
try
这样,它可以在String[] workedPer = null;
try
{
workedPer = newPer.split("=");
workedPer[1] = workedPer[1].substring(0, workedPer[1].length() -1);
}
循环
for