、编写程序,实现从命令行输入三个数值参数作为三角形的三条边,以此构造一个三角形。程序应该实现如下功能:
   -->检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
   -->检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
   -->检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
   -->检查输入的命令行参数的三个数值是否能够构造一个三角形,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)
 请高手们帮帮忙~~~~~~~~~~~~~~~~~~~~~~~~~~~`

解决方案 »

  1.   

    import java.util.Arrays;public class Test1 {
    public static void main(String[] args) throws Exception {
    if (args == null || args.length != 3) {
    throw new ArrayIndexOutOfBoundsException("");
    } double[] intArgs = new double[3];
    for (int i = 0; i < args.length; i++) {
    try {
    intArgs[i] = Double.parseDouble(args[i]);
    } catch (Exception e) {
    throw new NumberFormatException("");
    } if(intArgs[i] <= 0L){
    throw new IllegalArgumentException("");
    }
    }

    Arrays.sort(intArgs);

    if(intArgs[0] + intArgs[1] <= intArgs[2]
             || intArgs[2] - intArgs[1] >= intArgs[0]){
    throw new InvailEdgesException("");
    }
    }
    }
      

  2.   


    public class Test { /**
     * 编写程序,实现从命令行输入三个数值参数作为三角形的三条边,以此构造一个三角形。程序应该实现如下功能:
     * -->检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
     * -->检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
     * -->检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
     * -->检查输入的命令行参数的三个数值是否能够构造一个三角形
     * ,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)
     * 
     * @throws InvailEdgesException
     */
    public static void main(String[] args) throws InvailEdgesException {
    // TODO Auto-generated method stub // 检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
    if (args.length != 3) {
    throw new ArrayIndexOutOfBoundsException();
    }
    for (int i = 0; i < args.length; i++) {
    // 检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
    if (Character.isDigit(Integer.valueOf(args[i])))
    throw new NumberFormatException();
    // 检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
    if (Integer.valueOf(args[i]) < 0)
    throw new IllegalArgumentException();
    }
    int a = Integer.valueOf(args[0]);
    int b = Integer.valueOf(args[1]);
    int c = Integer.valueOf(args[2]);
    if (a >= b + c || b >= a + c || c >= a + b)
    throw new InvailEdgesException("不能够构造一个三角形"); }
    }class InvailEdgesException extends Exception {
    public InvailEdgesException(String message) {
    super(message);
    }
    }
      

  3.   


    public class Test { /**
     * 编写程序,实现从命令行输入三个数值参数作为三角形的三条边,以此构造一个三角形。程序应该实现如下功能:
     * -->检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
     * -->检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
     * -->检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
     * -->检查输入的命令行参数的三个数值是否能够构造一个三角形
     * ,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)
     */
    public static void main(String[] args) throws InvailEdgesException {
    // TODO Auto-generated method stub // 检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
    if (args.length != 3) {
    throw new ArrayIndexOutOfBoundsException();
    }
    for (int i = 0; i < args.length; i++) {
    // 检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
    if (Character.isDigit(Integer.valueOf(args[i])))
    throw new NumberFormatException();
    // 检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
    if (Integer.valueOf(args[i]) < 0)
    throw new IllegalArgumentException();
    } // 三角形的三条边
    int a = Integer.valueOf(args[0]);
    int b = Integer.valueOf(args[1]);
    int c = Integer.valueOf(args[2]);
    // 检查输入的命令行参数的三个数值是否能够构造一个三角形
    // ,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)
    if (a >= b + c || b >= a + c || c >= a + b)
    throw new InvailEdgesException("不能够构造一个三角形"); }
    }class InvailEdgesException extends Exception {
    public InvailEdgesException(String message) {
    super(message);
    }
    }
      

  4.   

    怎么打印不出呢?
     编译没错但是打印出的时候出现ArrayIndexOutOfBoundsException数组下标越界.这是什么原因麻烦再看看
      

  5.   


    public class Triangle { /**
     * 编写程序,实现从命令行输入三个数值参数作为三角形的三条边,以此构造一个三角形。程序应该实现如下功能:
     * -->检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
     * -->检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
     * -->检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
     * -->检查输入的命令行参数的三个数值是否能够构造一个三角形
     * ,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)
     */
    public static void main(String[] args) throws InvailEdgesException {
    // TODO Auto-generated method stub // 检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常
    if (args.length != 3) {
    throw new ArrayIndexOutOfBoundsException("请输入三个参数!");
    }
    for (int i = 0; i < args.length; i++) {
    // 检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常
    try {
    Integer.valueOf(args[i]);
    } catch (Exception e) {
    throw new NumberFormatException("请您输入数值!");
    }
    // 检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生IiegalArgumentException异常
    if (Integer.valueOf(args[i]) < 0)
    throw new IllegalArgumentException("请输入整数!");
    } // 三角形的三条边
    int a = Integer.valueOf(args[0]);
    int b = Integer.valueOf(args[1]);
    int c = Integer.valueOf(args[2]);
    // 检查输入的命令行参数的三个数值是否能够构造一个三角形
    // ,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)
    if (a >= b + c || b >= a + c || c >= a + b)
    throw new InvailEdgesException("不能够构造一个三角形");
    System.out.println("你输入的三条边可以构成三角形");
    }
    }
    //自定义的异常类
    class InvailEdgesException extends Exception {
    public InvailEdgesException(String message) {
    super(message);
    }
    }