System.in.read()出现异常,请大家指教

milkboy 2007-07-11 08:58:16
编写一个应用程序,找出几个字母中最小的一个,假定第一个读入的值是一个说明其余字符个数的数字字符

我的代码如下:
import java.io.*;

public class Smallest
{
public static void main ( String[] args ) throws IOException
{
int counter , input , smallest = 1000;
//这里用int是因为System.in.read()返回的是一个int类型的值
System.out.println ( "请输入字符个数的总数:" );
counter = System.in.read () ;
System.out.println ( counter );
//这里显示一下从System.in输入流中得到的值,但不是我想给的 //值
for ( int i = 1 ; i <= counter ; i++ )
{
System.out.println ( "请输入一个小写字母:" );
input = System.in.read ();
smallest = input < smallest ? input : smallest ;
}

System.out.println ( "最小的字母是:" + smallest );
}
}

编译情况:
请输入字符个数的总数:
3
51
请输入一个小写字母:
请输入一个小写字母:
请输入一个小写字母:

令我困惑的是我输入的是3,应该counter = 3才是,但这里显示51;
还有无论我输入的字符个数是多少,都会输出3条“请输入一个小写字母:”

我是刚刚学java的,希望大家指点一下,感激
...全文
332 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
joejoe1991 2007-07-11
  • 打赏
  • 举报
回复
System.in.read() 返回一个int类型的值 所以你输入字符3 返回51
ppact 2007-07-11
  • 打赏
  • 举报
回复
输入3显示51是没有错的!

因为显示的为3所对应编码的值。

应该是System.in 的问题,你换种方式读入数据吧。
用Scanner
或者用 BufferedReader

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧