A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董将 中级黑马   /  2012-12-18 23:05  /  1452 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 董将 于 2012-12-22 19:41 编辑

package com.itheima;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

/**
* 6、 输入一个数字组成的数组,输出该数组的最大值和最小值
*
* @author
*/

public class Test6 {

public static void main(String[] args) throws IOException {
System.out.println("请输入一组数字:");
// 创建输入流对象
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
// 读取一行信息
String input = reader.readLine();

// 以空格为分隔符,转换成数组
String[] numbers = input.split(" ");
int[] values = new int[numbers.length];
for (int j = 0; j < numbers.length; j++) {
values[j] = Integer.parseInt(numbers[j]);
}
numbers = null; // 回收numbers数组的资源

// 获取接收到的数组里面的最大、最小数值
// 获取最大值和获取最小值分别写成了两个函数的话,就等于是多遍历了一遍这个数组,效率降低了,可扩展性增强了
System.out.printf("MAX:%d, MIN:%d\n", getMax(values), getMin(values));
}

public static int getMax(int[] values) {
int tmp = Integer.MIN_VALUE;

if (null != values) {
tmp = values[0];
for (int i = 0; i < values.length; i++) {
if (tmp < values) {
tmp = values;
}
}
}

return tmp;
}

public static int getMin(int[] values) {
int tmp = Integer.MIN_VALUE;

if (null != values) {
tmp = values[0];
for (int i = 0; i < values.length; i++) {
if (tmp > values) {
tmp = values;
}
}
}

return tmp;
}
}
在这个里面,我想要的效果是在输入非数字的时候,系统直接给提示:“您输入的是非法字符”;
也就是对键盘录入的东西进行一个判断,有那些处理方式?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
首先,你可以对用户输入的内容进行判断,如果输入非数字的时候,可以输出:“您输入的是非法字符”;提醒用户重新修改输入内容。
此外,你还能自定义一个异常,写一个自定义的异常类,该类继承了Exception,然后对用户输入的内容进行try{} catch{} finally{},这样当用户输入非法值时,就会出现自定义异常,提醒用户重新输入。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 鼓励一个

查看全部评分

回复 使用道具 举报
高境 发表于 2012-12-19 09:39
首先,你可以对用户输入的内容进行判断,如果输入非数字的时候,可以输出:“您输入的是非法字符”;提醒用 ...

你定义的IOException异常是属于IO的异常,你想要的异常是那应该属于输入异常。表面看他们可能是同一个异常,但是这样输入异常是“自定义的异常”,所以你需要在你输入的时候做出判断,如果出现异常那你要记得抛出异常。你可以查看api的Exception中的相关说明!个人偏见!希望能够有用!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马