如何访问循环外的变量?

时间:2016-02-02 18:17:44

标签: java

我需要访问'设置'在第一个for循环之外。我怎样才能做到这一点? 我想对结果进行排序,但我并不打算访问结果' sets'在for循环之外。如果我在里面排序,我没有得到预期的排序结果。

static Set < String > generateReports() {
    try {
        String[] parts2;
        String part2 = null;
        String[] parts3;
        String part3 = null;
        // String sets = null;
        for (i = 1; i < 3; i++) {
            String line = null;

            FileReader fileReader1 = new FileReader("C:/Projects/Wells Fargo IVR/TestFolder/" + (i) + ".log");
            BufferedReader bufferedReader1 = new BufferedReader(fileReader1);

            while ((line = bufferedReader1.readLine()) != null) {

                String string = line;

                parts2 = string.split("-");
                if (parts2.length > 4) {
                    part2 = parts2[4];
                    sids.put(part2, line);
                    // System.out.println(sids.get(part2));
                }
                //  if(IVRLogFileMerge.getSid().contains(part2)){
                if (testSet.contains(part2)) {

                    //    System.out.println("This is file number" + (i)+ " " + line);

                    for (String current: testSet1) {
                        if (line.contains(current)) {
                            //System.out.println(line);
                            testSetFinal.add(line);


                            String string1 = line.replace("  ", " ");
                            String string2 = string1.replace("default task", "Thread");
                            parts3 = string2.split(" ");

                            sets = (parts3[1] + " " + parts3[6] + " " + parts3[8] + " ");


                            //System.out.print(parts3[1] + " " + parts3[6] + " " + parts3[8] + " ");

                            for (int j = 10; j < parts3.length; j++) {

                                //System.out.print(parts3[j] + " ");                            
                                // bufferWritter.write(parts3[j] + " ");
                                sets = sets.concat(parts3[j] + " ");
                            }

                            FileWriter fileWritter = new FileWriter("C:/Projects/Wells Fargo IVR/TestFolder/file.txt", true);
                            BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
                            bufferWritter.write(sets);
                            bufferWritter.newLine();
                            bufferWritter.close();
                            // System.out.println();

                            String[] str = new String[] {
                                sets
                            };
                            Arrays.sort(str);
                            for (String s: str) {
                                //System.out.println(i + " " + s);
                            }

                        }

                    }
                }

                //bufferedWriter.write("This is file number" + (i)+ " " + line);
                //bufferedWriter.newLine();             
            }

            bufferedReader1.close();

        }
        //System.out.println(testSetFinal);

1 个答案:

答案 0 :(得分:3)

您当前已将String sets = null;注释掉了。取消注释,并将其切换到

String sets = "";