`

system.in.read

F# 
阅读更多
关于字符的获得getBytes一直搞不明白!!

也就得过且过了!今天遇到一个问题

public class liuinput {
    long f = 0;
    long ff(int n) {
    	System.out.println(n);
        if(n<0) System.out.printf("n<0,input error");
        else if(n==0||n==1) f=1;
        else f=ff(n-1)*n;
        return f;
    }
    
    public static void main(String[] args) {
    	 liuinput nf = new  liuinput();
        try {
            System.out.println(nf.ff(System.in.read()));
            /*从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。
             * 如果因为已经到达流末尾而没有可用的字节,则返回值 -1。
             * 在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
             *  */
            System.out.println("2".getBytes()[0]);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

System.in是InputStreeam流!他的read方法在上面注释是api中的解释!
他返回的是字符的字节!也就是下一个字节!!
字符传输的是要找对应的AsCII码!翻译成字节数组!!
例如字符2的ASCII是十进制的50!所以相当于输入的是整数50
如果想获得int类型 那就用Scanner的nextInt方法!
假如你输入-1
他只会解析-号 他的ASCII码是45 也就是相当于输入了45
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics