题目:
用户输入一个字符串,分行输出每个字符,如输入ABV,则输出
A
B
C
我写的如下:
import java.io.*;
public class cloudy{
static BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in));
public static void main (String args[]){
String  sentence;
int num;
System.out.print("please input a String:");
System.out.flush();
sentence=keyboard.readLine();
System.out.println();
num=sentence.length();
    for(int i=0;i<num;i++)
     // System.out.println(sentence.substring(i,i));
            //  System.out.println(sentence.charAt(i));

}
}
最后两句我不知道用哪一个好,报错在“sentence=keyboard.readLine();”,请问是为什么?
 

解决方案 »

  1.   

    sentence = keyboard.readLine(); 会抛出IO异常,你没捕捉。 改成下面这样就可以了  static BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in));
      public static void main (String args[]){
        String sentence="";
        int num;
        System.out.print("please input a String:");
        System.out.flush();
        try {
          sentence = keyboard.readLine();
        }
        catch (IOException ex) {
          ex.printStackTrace();
        }
        System.out.println();
        num = sentence.length();
        for (int i = 0; i < num; i++)
        {System.out.println(sentence.charAt(i));}
      }
      

  2.   

    为什么sentence = keyboard.readLine(); 要进行异常捕捉
    而有点不需要啊
    怎样看的出什么时候要进行异常捕捉
      

  3.   

    只要有涉及I/O的都要捕获异常,或者在在函数前throws异常