import java.util.*;
import java.io.*;
class ScannerTest
{
public void readKeyboard()
{
System.out.print("输入信息:");
try
{
Scanner sc=new Scanner(System.in);
String str=sc.next();
}catch(Exception e)
{
e.printStackTrace();
}
System.out.println(str);
sc.close();
}
}
public class ScannerFileTest
{
public static void main(String[] args)
{
new ScannerTest().readKeyboard();
}
}
麻烦看一下上面代码有什么问题吗

解决方案 »

  1.   

    class ScannerFile {
    public void readKeyboard() {
    System.out.print("输入信息:");
    // 临时变量的作用域在每一对"{}"之间的
    Scanner sc = null; // 变量外提
    String str = null;
    try {
    // Scanner sc = new Scanner(System.in);
    // String str = sc.next();
    sc = new Scanner(System.in);
    str = sc.next();
    } catch (Exception e) {
    e.printStackTrace();
    }
    // 因为你定义在try中的变量,在这里无法访问
    System.out.println(str);
    sc.close();
    }
    }