Java 作业2 Java API
2016-04-30 22:27
507 查看
作业2 Java API
一、编程题
(1)编程实现如下功能:从控制台输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。其中,从控制台获得输入的代码参考如下:
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
提示:使用String类和Character类的相应方法来实现。
(2)利用Random类来产生5个20到50之间的随机数。
提示:[n-m] (n,m均为整数,n小于m)之间的随机数的公式为n+(new Random()).nextInt(m-n+1)。
(3)计算从今天算起,100天以后是几月几号,并格式化成××××年×月×日的形式打印出来。
提示:参考教材222-228页Date类,Calendar类,和DateFormat类的用法完成本程序。其中,调用Calendar类的add()方法计算100天后的日期;调用Calendar类的getTime()方法返回Date 类型对象;使用FULL格式的DateFormat对象,调用format()方法格式化Date对象。
二、作业结果和分析
(1)程序1运行结果
分析:通过Scanner 类的nextLine()方法从控制台输入一串字符,然后通过String类的toCharArray()方法把字符串转换成数组,然后遍历,通过Character类的isLetter(),isSpaceChar(),isDigit()判断是否为英文字母、空格、数字,是就计数量++,然后就可以统计出英文字母、空格、数字的个数了,再用字符总数减去英文字母、空格、数字的个数即可求出其他字符个数。
(2)程序2运行结果
分析:根据公式n+(new Random()).nextInt(m-n+1)输出随机数。
(3)程序3运行结果
分析:通过calendar类的getTime()获得当前时间,calendar类的add(Calendar.DATE, 100)求出100天后的时间,fullFormat.format()格式化输出
三、源代码
(1)程序1源代码
package task2; import java.util.Scanner; public class CharCount { public static void main(String[] args) { // 创建Scanner类实例对象,用于从控制台输入 Scanner scan = new Scanner(System.in); // 提示用户输入 System.out.println("欢迎光临~晴之小店~ o(≧v≦)o~~"); System.out.println("这里可以统计出你所输入的英文字母、空格、数字和其它字符的个数。"); System.out.println("不信?赶紧试试吧\n"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("开始请按1,退出请按0:"); int temp = scan.nextInt(); if (temp == 0) { System.out.println("欢迎下次光临~(≧▽≦)~再见"); } // 用于清除缓冲区 String s1 = scan.nextLine(); while (temp != 0) { System.out.println("请输入一串字符:"); String str = scan.nextLine(); // 把字符串转换成数组 char array[] = str.toCharArray(); // 遍历判断,统计英文字母、空格、数字和其它字符的个数。 int countEng = 0; int countSpace = 0; int countDidit = 0; Long startTime = System.currentTimeMillis(); // 开始时间 for (int i = 0; i < array.length; i++) { // 统计英文字母 if (Character.isLetter(array[i])) { countEng++; } // 统计空格的个数 if (Character.isSpaceChar(array[i])) { countSpace++; } // 统计数字的个数 if (Character.isDigit(array[i])) { countDidit++; } } // 统计其它字符的个数 int countOther = array.length - countEng - countSpace - countDidit; Long endTime = System.currentTimeMillis(); // 开始时间 System.out.println("英文字母有 " + countEng + "个"); System.out.println(" 空格有 " + countSpace + "个"); System.out.println(" 数字有 " + countDidit + "个"); System.out.println("其它字符有 " + countOther + "个"); if (endTime - startTime > 0) { System.out.println("用时" + (endTime - startTime) + "毫秒"); } System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("继续请按1,退出请按0:"); temp = scan.nextInt(); if (temp == 0) { System.out.println("欢迎下次光临~(≧▽≦)~再见"); } // 用于清除缓冲区 String s2 = scan.nextLine(); } } }
(2)程序2源代码
package task2; import java.util.Scanner; import java.util.Random; public class TestRandom { public static void main(String[] args) { System.out.println("欢迎光临~晴之小店~ o(≧v≦)o~~"); System.out.println("这里可以生成随机数哦~"); Scanner sc = new Scanner(System.in); System.out.println("开始请按1,退出请按0:"); int temp = sc.nextInt(); if (temp == 0) { System.out.println("欢迎下次光临~(≧▽≦)~再见"); } while (temp == 1) { System.out.println("请问你想生成几个随机数呢?"); int x = sc.nextInt(); System.out.println("请输入范围:"); int m = sc.nextInt(); int n = sc.nextInt(); System.out.println("生成的随机数为:"); Long startTime = System.currentTimeMillis(); // 开始时间 // [n-m] (n,m均为整数,n<m)之间的随机数的公式为n+(new Random()).nextInt(m-n+1)。 for (int i = 0; i < x; i++) { System.out.print(m + (new Random()).nextInt(n - m + 1) + " "); } Long endTime = System.currentTimeMillis(); // 结束时间 System.out.println(); if (endTime - startTime > 0) { System.out.println("用时" + (endTime - startTime) + "毫秒"); } System.out.println("继续请按1,退出请按0:"); temp = sc.nextInt(); if (temp == 0) { System.out.println("欢迎下次光临~(≧▽≦)~再见"); } } } }
(3)程序3源代码
package task2; import java.text.DateFormat; import java.util.Calendar; import java.util.Scanner; public class CountDate { public static void main(String[] args) { System.out.println("欢迎光临~晴之小店~ o(≧v≦)o~~"); System.out.println("这里可以计算出n天(如:100天)以后是几月几号哦~"); Scanner sc = new Scanner(System.in); System.out.println("开始请按1,退出请按0:"); int temp = sc.nextInt(); if (temp == 0) { System.out.println("欢迎下次光临~(≧▽≦)~再见"); } while (temp == 1) { // 获取当前时间的Calendar对象 Calendar calendar = Calendar.getInstance(); System.out.println("从今天开始算起请按0,从某一天开始算起请按1"); int way = sc.nextInt(); if (way == 1) { System.out.println("请输入年、月、日:"); int y = sc.nextInt(); int m = sc.nextInt()-1; int d = sc.nextInt(); // 开启non-lenient模式 calendar.setLenient(false); calendar.set(y, m, d); } else { System.out.print("今天是:"); } // Full格式的日期格式器对象 DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL); System.out.println(fullFormat.format(calendar.getTime())); calendar.add(Calendar.DATE, 100); // 下面打印格式化后的日期或者日期/时间 System.out.println("100天后:" + fullFormat.format(calendar.getTime())); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("继续请按1,退出请按0:"); temp = sc.nextInt(); if (temp == 0) { System.out.println("欢迎下次光临~(≧▽≦)~再见"); } } } }
相关文章推荐
- Java对象死亡标记的过程
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”
- Java Swing中Substance个人比较喜欢的两种组合
- [转载]企业级应用架构(NHibernater+Spring.Net+MVC3)
- 【JAVA】java字符串拼接
- 初识spring mvc + mybatis
- JAVA为什么要配置环境变量,怎样配置
- 第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密 java.lang.ClassNotFoundException 踩坑解决问题详细内幕版本
- Java多线程通信方式
- java消息机制 ActiveMQ入门实例
- 【Struts】:Interceptors(拦截器)
- java中输入流和输出流
- java class Loader
- java回调 -- 别再让我犯糊涂
- 20145325张梓靖 《Java程序设计》第9周学习总结
- Java单元测试工具:JUnit4——JUnit测试套件使用及参数化设置
- Java循环练习:鸡兔同笼
- 【附源码】搭建spring mvc +freemarker
- 20145208 《Java程序设计》第9周学习总结
- 浅析Java中CountDownLatch用法