第一题

分别编写名字为TestPackageCalss和MyException类,实现一下功能:在控制台串中输入一串字符,并判断,如果是整数字符串,则转换成Integer对象,如果是浮点数字符串则转换成Double对象,并格式化为 $#…#.##(不用四舍五入输出进度到小数点后面两位,),如果是非数字,则抛出显式抛出自定义异常类MyException,异常信息是“输入了数据无法实现数字格式转换";
MyException

//MyException
public class MyException extends Exception {public MyException(String ErrorMessage) {super(ErrorMessage);}}
//TestPackageCalss
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Scanner;
import java.math.*;public class TestPackageCalss {public static double check(String s) throws MyException {String regex="\\d+\\.{1}\\d*";if(s.matches(regex)) {return Double.parseDouble(s);}else {throw new MyException("输入了数据无法实现数字格式转换");}}public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);//用正则表达式进行判断   String regex="\\d+";while(true) {String s=sc.next();try {if(s.matches(regex)) {//创建整型对象System.out.println("整型");Integer I=Integer.valueOf(Integer.parseInt(s));}else {//这里要用到了check函数,之后才能catch Exceptiondouble d1=check(s);System.out.print("浮点型");Double I=Double.valueOf(Double.parseDouble(s));//格式化~WOWDecimalFormat d2=new DecimalFormat("#0.##");d2.setRoundingMode(RoundingMode.FLOOR);System.out.println(d2.format(d1));}}catch(MyException e) {System.out.println(e);}}}}

第二题

编写一个类,该类有一个名字为 getRandomNum的方法 ,该方法可以返回若干个指定范围内的随机数。编写一个测试类,通过键盘输入 返回随机数的个数和范围,打印输出返回的随机数。
比如输入 10 20 ,则可以返回10个20以内的不同的随机数。(应用:比如以学号抽奖,不能重复中奖,每次抽出来数字一定属于某个同学的学号)

这里如果学号过大了,有两种解决方法

  1. 可以适当的减去某一特定的数,在输出的时候再加上。
  2. 如果真的真的very big,可以建立一个数组专门用来储存。
package TestPackageCalss;import java.util.Scanner;public class RandomNum {static int flag[]=new int [1000000];public static int getRandomNum(int head,int tail) {int s=(int) (head+(Math.random()*(tail-head)));return s;}public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);int num=0;int head=sc.nextInt();int tail=sc.nextInt();while(num<=tail-head) {int n=getRandomNum(head, tail);if(flag[n]==0) {System.out.print(n+" ");flag[n]=1;num++;}}}
}

第三题

编写一个掷色子猜大小的游戏: 每个色子有六个面,分别代表 1 -6 点。每次产生三个色子,三个点数的和>=10 为大,否则为小。 程序启动时在控制台显示 用户当前的总分,然后提示用户输入 押注的 分数,用户按回车后提示用户猜大小,然后程序根据色子点数和用户输入的结果进行判断。每一次执行完后输出色子点数,用户的输赢和剩余的分数。当用户的输入的分数是负数或大于总分,提示用户用户输入有误,如果用户输入exit,则程序退出。程序还要保证如果用户输入的分数 >1000,并且机器赢得的分数少于用户的输入分数时,用户一定输。

package TestPackageCalss;import java.util.Scanner;public class _3 {public static int getRandomNum(int head,int tail) {int s=(int) (head+(Math.random()*(tail-head)));return s;}public static void main(String[] args) {Scanner sc=new Scanner(System.in);//两人刚开始各有两千颗欢乐豆int sum=2000,robot=2000,flag=0;while(true) {flag=0;System.out.println("您当前总分为:"+sum);System.out.println("机器人当前总分为:"+robot);if(sum<robot) System.out.println("很遗憾,您输了,如果您想继续玩游戏,请输入go,否则输入exit");elseSystem.out.print("请输入您要押注的分数:");String score=sc.next();if(score.equals("exit"))System.exit(-1);if(score.equals("go")) {sum=0;}int intscore=Integer.parseInt(score);if(intscore<0||intscore>sum) {System.out.println("输入有误,请重新输入");continue;}//如果f是1则说明是小,2则说明是大int f=0;System.out.print("请输入您要押注的大小:BIG or SMALL");String size=sc.next();if(size.equals("BIG"))f=2;if(size.equals("SMALL")) {f=1;}//如果用户的押注的分数大于1000或者比机器人高,用户一定输if(sum>robot||intscore>1000)flag=1;System.out.println("色子点数分别为:");int a,b,c;while(true) {a=getRandomNum(1, 6);b=getRandomNum(1, 6);c=getRandomNum(1, 6);if((flag==1&&(a+b+c>=10)&&f==1)||(flag==1&&(a+b+c<10)&&f==2))break;else if(flag==0)break;}System.out.println(a+" "+b+" "+c);if(((a+b+c>=10)&&f==2)||((a+b+c<10)&&f==1))sum+=100;elserobot+=100;}}
}

第四题

编写一个类TessArray,定义一个一维的整型数组,使用两种循环遍历数组。输出数组中最大值的元素。然后对数组排序,分别在数组头,中间和末尾 位置插入一个元素。

package TestPackageCalss;
import java.util.*;public class TessArray {public static void main(String[] args) {// TODO Auto-generated method stubList<Integer> list=new ArrayList<Integer>();Scanner sc=new Scanner(System.in);System.out.print("请输入你要建立一个多大的数组:");int n=sc.nextInt();int arr[] =new int [n];for(int i=0;i<n;i++) {arr[i]=sc.nextInt();}int maxi=arr[0];for(int i=1;i<arr.length;i++) {maxi=Math.max(maxi, arr[i]);}System.out.println("最大数为:"+maxi);Arrays.sort(arr);//乖孩子做法System.out.print("请输入你要插入的元素:");int m=sc.nextInt();int newarr[]=new int[n+3];for(int i=0,j=0;j<newarr.length;j++) {if(j==0||j==newarr.length-1||j==newarr.length/2) {newarr[j]=m;continue;}newarr[j]=arr[i];i++;}for(int i=0;i<n+3;i++)System.out.print(newarr[i]+" ");//捣蛋孩子做法for(int i=0;i<n;i++)list.add(arr[i]);System.out.print("请输入你要插入的元素:");m=sc.nextInt();list.add((n+1)/2,m);list.add(0,m);list.add(n+2,m);System.out.println(list);}
}

【JAVA作业】异常、随机数、List相关推荐

  1. Java第六次作业--异常处理和Java类集

    (一)学习总结 1.用思维导图对本周的学习内容进行总结. 2.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序.可使用printStackTrace 和getMessage方法了 ...

  2. java常见异常思维导图_21_异常_第21天(异常、企业面试题,思维导图下载)

    今日内容介绍 1.异常概述和继承体系 2.异常原因以及处理方式 3.运行时期异常 4.方法重写的异常处理 5.Throwable类常见方法 6.自定义异常 01异常的概述 * A: 异常的概述 * a ...

  3. Java作业:异常处理实验

    Java作业:异常处理实验 NumberFormatException异常 ArrayIndex0utBoundsException异常 Illega1ArgumentException异常 Ille ...

  4. Java的异常类和常用类、容器

    Java的异常类和常用类.容器 一.Java的异常类 1.异常的概念 2.异常的分类 3.try-catch语句 4.自定义异常类 二.Java的常用类 1.String类 2.StringBuffe ...

  5. java 获取区间随机数_Java获取随机数的3种方法

    主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.rando ...

  6. java中的随机数_Java获取随机数

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...

  7. java 获取区间随机数_Java获取随机数的几种方法

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...

  8. JAVA常见异常信息(保存)

    一. java基础编程中常见的错误(基本类型) 包装类型参与运算时,要做null值校验,否则可能出现空指针异常. 包装类型比较大小,不能使用compare(i,j)直接比较,因为该方法是用来比较基本类 ...

  9. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...

  10. java关于异常的面试程序题_java异常相关面试题

    欢迎关注 CSDN:程序员小羊 微信公众号:程序员小羊 博客园:程序员小羊 1.Java中异常分为哪两种? 编译时异常 运行时异常 2.异常的处理机制有几种?. 异常捕捉:try-catch-final ...

最新文章

  1. php接口和java接口_java和php接口的区别是什么
  2. hdu--4902--线段树
  3. 【很久之前的一篇老文章】一位程序员工作10年总结的13个忠告
  4. 窗体跳转与传值 02
  5. 面试官系统精讲Java源码及大厂真题 - 06 LinkedList 源码解析
  6. Android GPS 取经纬度
  7. curl post file PHP
  8. AndroidStudio打包生成apk
  9. JSP include directive 和JSP include的区别
  10. Spring3.0核心组件的源码简单分析
  11. 计蒜客---N的-2进制表示
  12. 原来编译通过,现在编译不通过,怎么回事?
  13. vscode配置esp32开发环境:ESP-IDF VS Code Extension 没有 Using Existing Setup
  14. 图解Linux网络包接收过程
  15. 埃隆·马斯克(Elon Musk)
  16. google map 谷歌地图 更改当前定位图标icon大头钉小蓝点
  17. 云会议玩法升级:从免费午餐到高价值付费
  18. 关于程序员入职一家公司需要问咨询的一些的问题(面试总结)
  19. 使用Windows Server 2003轻松建立森林间信任
  20. 判断推理----类比推理

热门文章

  1. Linked list
  2. Linux搭建web服务器
  3. SpringMVC+LayUI 交通事故管理系统
  4. 互联网请回答2020
  5. android 停止服务方法,Android编程实现开始及停止service的方法
  6. 由于磁盘坏道导致的系统卡顿令我抓狂
  7. java公众号图片上传_调用微信公众号接口上传图片素材
  8. Express框架、Webstorm中创建Express项目
  9. python三维矩阵_python三维矩阵
  10. 八皇后问题(递归回溯算法详解+C代码)