system.in.skipread()的问题

System.in.read()的使用方法 - HisCoder - 博客园
关键字: system.in.read()
我们先来看一段程序
package system.in;
import java.io.IOE
public class SystemIn {
&&& /**&&&& * @param args&&&& * @throws IOException&&&& */&&& public static void main(String[] args) throws IOException {&&&&&&& int a = 0;&&&&&&& a = System.in.read();&&&&&&& System.in.getClass();
&&&&&&& System.out.println("a=" + a);&&&&&&& int sum = 0;&&&&&&& for (int i = 0; i &= i++)&&&&&&&&&&& sum +=&&&&&&& System.out.println(sum);
当我们输入为
会觉得很奇怪,为什么我输入的是5,结果输出a却为53,其实如果你了解read()这个函数,就很容易明白,System.in.read()返回的是输入数值的 ASKII 码(一个 int 整数)。
那么怎么来解决这种问题呢,有两种方式可以解决
1.采用System.out.write();注意使用这种方法,只能将值输出的时候再转换回来,但是里面的运算逻辑值还是错误的,就是sum的值还是错误的。
2.采用BufferedReader,但是要注意的是BufferReader读入的是一个字符串,所以我们在程序里面还要将其转换为Integer,我们就会发现代码如下
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));&&&&&&& int&a = Integer.parseInt(reader.readLine());&&&&&&& System.out.println("a=" + a);&&&&&&& int sum = 0;&&&&&&& for (int i = 0; i &= i++)&&&&&&&&&&& sum +=&&&&&&& System.out.println(sum);
使用这种方法需要注意你输入的值,必须是数字,不能是字符串
所以个人感觉,如果你之需要对自己输入的数字做处理,比如进行相加,相减等操作,还是使用第二种方法比较好。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
System.in.read()的用法
下载积分:10
内容提示:System.in.read()的用法
文档格式:DOC|
浏览次数:298|
上传日期: 15:14:56|
文档星级:
该用户还上传了这些文档
System.in.read()的用法
官方公共微信下次自动登录
现在的位置:
& 综合 & 正文
关于System.in.read()
关于System.in.read()
Java遵循标准I/O的模型,提供了Syetem.in,System.out,以及System.err。本书一直都在用System.out往标准输出上写,而它(System.out)是一个已经预先处理过的,被包装成PrintStream的对象。和System.out一样,System.err也是一个PrintStream,但是System.in就不对了,它是一个未经处理的InputStream。也就是说,虽然你可以直接往System.out和System.err上写,但是要想读System.in的话,就必须先做处理了。
(注:我写了个,直接用a=System.in.read();,结果输入1的时候竟然输出的是49,呵呵,
原来 System.in.read() 返回的是输入数值的 ASKII 码(一个 int 整数))
import java.io.*;public class Sum{
public static void main(String args[]) throws java.io.IOException
a=System.in.read();
System.out.pringln("a="+a);
int sum=0;
for(int i=0;i&=a;i++)
System.out.println(sum);
注意:throws java.io.IOException 要写在(String args[])的后面。
编译通过,执行:
java Sum2a=501275
发现输入的是 2 ,而返回 a 的值却是 50 ,后来查了一下,原来 System.in.read() 返回的是输入数值的 ASKII 码(一个 int 整数)。
如果要求輸入與輸出的一致的話:
通常情况下,你会用readLine( )一行一行地读取输入,因此要把System.in包装成BufferedReader。但在这之前还得先用InputSteamReader把System.in转换成Reader。
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(in.readLine());//强制转换为需要的类型
import java.io.*;public class Sum{
public static void main(String args[]) throws java.io.IOException
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
System.out.println("a="+a);
int sum=0;
for(int i=0;i&=a;i++)
System.out.println(sum);
&&&&推荐文章:
【上篇】【下篇】System.in.read();的问题?
System.in.read()中in是一个字段即静态常量(JAVA帮助文档中:public static final InputStream in),那么问题一:in可以使用InputStream中的所有方法么?如果可以就是说静态常量可以引用该类的所有方法。但是我调试的时候静态常量只能引用该类的静态方法。例如:class A{   public static  void test(){      System.out.println(&HA HA&);    } }class B{   public static A printT }class Run  {   public static void main(String[] args)     {      B.printTest.test();    } }把class A中test方法的static去掉或者改为别的就会出错。问题二:在InputStream中read()方法在JAVA帮助文档中是这样的:abstract int read()   抽象方法不是没有方法体么?那么是如何执行输入功能的?
09-08-22 &
System.in.read接收的是字节0-255你输入个1以后,其实返回的是ASCII码,也就是49然后你又按了个回车,回车的ASCII码是13结果相当于a=49b=13
请登录后再发表评论!共有 3448 人关注过本帖
标题:以前java的System.in.readLine()现在怎么没了?
等 级:新手上路
帖 子:24
&&问题点数:0&&回复次数:6&&&
以前java的System.in.readLine()现在怎么没了?
如题,记得以前一直用的啊,怎么现在没了啊???
搜索更多相关主题的帖子:
等 级:新手上路
帖 子:493
import java.io.*;
public class ReadLine {
public static void main(String[] args)
System.out.println("按Q/q键退出!");
String strLine="";
while(!strLine.equalsIgnoreCase("q"))
strLine = readString();
System.out.println(strLine);
public static String readString()
return new BufferedReader(new InputStreamReader(System.in)).readLine();
catch(Exception e)
e.printStackTrace();
return "";
我在说's blog& &.cn
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28492
专家分:57
System.in一直就没有readLine()这个方法啊你在哪里看过有这个方法,
可惜不是你,陪我到最后
等 级:贵宾
威 望:13
帖 子:676
建议手头放一本jdk的文档是比较方便的
我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28492
专家分:57
一本?这个难道你还要去买?
可惜不是你,陪我到最后
等 级:贵宾
威 望:13
帖 子:676
楼上取笑了,就是jdk的帮助
我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
等 级:贵宾
威 望:13
帖 子:676
[转]http://bbs.bc-cn.net/viewthread.php?tid=125274可以参考Eastsun提供的稳当
我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
版权所有,并保留所有权利。
Powered by , Processed in 0.024333 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 system.in.skip 的文章

 

随机推荐