资源泄漏:'sc'永远不会关闭

时间:2017-03-30 14:24:08

标签: java memory-leaks java.util.scanner

计算一个特定字符,字母或数字在句子中出现次数的程序。

但是我一直收到消息:

  

资源泄漏:'sc'永远不会关闭

我正在使用Java和Eclipse。我该怎么办?

import java.util.Scanner;
class Number-count {
    public static void number - count(String args[]) {
        String s;
        char ch;
        int count = 0;
        Scanner SC = new Scanner(System. in );
        System.out.println("Enter a sentence");
        String str = sc.nextLine();
        System.out.println("Enter a character to be searched for occurence");
        s = sc.nextLine();
        char c = s.charAt(0);
        for (int i = 0; i < str.length(); i++) {
            ch = str.charAt(i);
            if (ch == c) {
                count++;
            }
        }
        System.out.println("Character " + c + " occur " + count + " times");
    }
}

4 个答案:

答案 0 :(得分:2)

扫描仪对象在使用完毕后需要关闭。因此,在完成之后,您应该在主方法结束之前调用以下内容

SC.close();

答案 1 :(得分:1)

扫描仪工作完成后,放:sc.close();

正在100%工作

答案 2 :(得分:0)

尝试此代码

public static void number - count(String args[]) throws IOException {
 Scanner sc = new Scanner(System.in);
   try{
        //your code
      }
   finally {
   sc.close();
   } 
   }

答案 3 :(得分:0)

如果你想在一个类中全局使用扫描器(有时是这种情况)

试试这个:

static Scanner sc = new Scanner(System.in);
相关问题