无法找到变量'S'。使用带循环的数组很麻烦。

时间:2016-12-14 19:04:33

标签: arrays string loops variables

我在一个while循环中有一个名为'S'的数组。

我已经在输入文件中逐行写入了我的课程;然后我设法获得每行的第一个数字并将数字实现为字符串数组。

在我的while循环之外,我想使用数组'S'来比较第一个元素和接下来的2个元素,看它们是否匹配。

public static void main(String[] args) throws IOException{
       int count = 0;
       FileReader Input = new FileReader("Input File");
       BufferedReader br = new BufferedReader(Input);
       String line;
       while((line = br.readLine()) !=null)
       {
             //System.out.println(line);
             String[]bits = line.split(" +");
             String temp;
             temp = bits[1].substring(0,1);
            // System.out.println(temp);
             String S[] = temp.split(" ");
            //System.out.println(Arrays.toString(S));
        }
       for(int i = 0; i < S.length; i++){
           if(S[i] == S[i + 1] && S[i] == S[i + 2]){
               count++;
        }
           System.out.println(count);

我知道我的编码很可怕。这是第3天的代码拼图出现。

1 个答案:

答案 0 :(得分:0)

因为你已经在循环中声明了'S',它只存在于while循环的上下文中。要在该循环之外使“S”可用,请在循环之前将其声明为

String[] S = null;  // Declare it here and initialize it with a "dummy" value.
while((line = br.readLine()) !=null)
{
    :
    S[] = temp.split(" ");  // Assign the "real" value.
    :
}
// Now S will still be available for the rest of your method.