Java开发实例大全:3月14日练习
import java.io.FileNotFoundException; import java.io.PrintStream; import java.math.BigDecimal; import java.util.Scanner; public class Test { public static void main(String[] args) { // new Case019_100().test(); // new Case027().test(); // new Case034().test(); new Case037().test(); // new Case036().test(); // new Case042().test(); } } class Case019_100 { public void test() { // dispose019(); // dispose020(); // dispose021(); // dispose022(); // dispose023(); // dispose026(); // dispose034(); } private void dispose019() { System.out.println("Out"); System.err.println("Err"); } private void dispose020() { System.out.println("Your Input:"); String line = new Scanner(System.in).nextLine(); System.out.println("YOur Input:"+line); } private void dispose021() { try { // PrintStream out = new PrintStream(new FileOutputStream("./src/stdout")); PrintStream out = new PrintStream("./src/stdout"); //这个地方可以优化 System.setOut(out); System.out.println("nihao"); System.out.println("happy to see you."); } catch (FileNotFoundException e) { e.printStackTrace(); } } private void dispose022() { System.out.println("Input A Line:"); String line = new Scanner(System.in).nextLine(); //加密 char[] arr = line.toCharArray(); for (int i = 0; i < arr.length; i++) { arr[i]=(char)(arr[i]^2000); } System.out.println("Encrypt Result: "+new String(arr)); //解密 for (int i = 0; i < arr.length; i++) { arr[i]=(char)(arr[i]^2000); } System.out.println("Decode Result: "+new String(arr)); } private void dispose023() { System.out.println("Your Input:"); Long num = new Scanner(System.in).nextLong(); String result = num%2==0?"偶数":"奇数"; System.out.println("Result: "+result); } private void dispose026() { // System.out.println("2*16:" + (1<<5)); } private void dispose034() { int layer = 10; int[][] arrs = new int[layer][layer]; for (int i = 0; i < layer; i++) { for (int j = 0; j < layer; j++) { arrs[i][j]=-1; } } for(int i=0;i<layer;i++){ } } private void dispose037() { int size = 10; if (size % 2 == 0) { size++; } int length = size/2+1; boolean[][] arrs = new boolean[length][length]; for (int i = 0; i < length; i++) { for (int j = 0; j < length; j++) { if(i==j) arrs[i][j]=true; else arrs[i][j]=false; } } } } /* 需求:利用异或运算,完成不借助第三个变量实现两个数字的交换 核心公式: A = A ^ B; B = B ^ A; A = A ^ B; 解析: A = a; B = b; A = a^b; B = b^(a^b)=a; A = (a^b)^(b^(a^b))=b; */ class Case027 { public void test() { dispose(10,20); } private void dispose(int a, int b){ System.out.println("a: "+a+" b: "+b); a=a^b; b=a^b; a=a^b; System.out.println("a: "+a+" b: "+b); } } /* 需求:杨辉三角 */ class Case034 { public void test() { dispose(10); } private void dispose(int layer){ int[][] arrs = new int[layer][layer+2]; //初始化二维数组 for (int i = 0; i < layer; i++) { for (int j = 0; j < layer + 2; j++) { arrs[i][j]=-1; } } // for (int i = 0; i < layer; i++) { if (i == 0) { arrs[i][1]=1; arrs[i][0]=0; arrs[i][2]=0; continue; } int j; for (j = 1; j <= i + 1; j++) { arrs[i][j]=arrs[i-1][j]+arrs[i-1][j-1]; } arrs[i][0]=0; arrs[i][j]=0; } for(int m = 0;m<layer;m++){ for (int n = 1; n <= m+1; n++) { System.out.printf("%4d",arrs[m][n]); } System.out.println(); } } } /* 需求:计算1+1/2!+1/3!+...+1/20! */ class Case036 { public void test() { dispose(20); dispose2(20); } private void dispose(int n) { int[] arrs = new int[n+1]; for (int i = 1; i <= n; i++) { if (i == 1) { arrs[i]=1; continue; } arrs[i]=arrs[i-1]*i; } double result = 0.0; for (int i = 1; i <= n; i++) { result += (double)1/(double)arrs[i]; } System.out.println("Result:"+result); } //这种写法更精炼 private void dispose2(int n) { BigDecimal sum = new BigDecimal(0.0); BigDecimal factorial = new BigDecimal(1.0); int i = 1; while (i <= n) { factorial = factorial.multiply(new BigDecimal(1.0/i)); sum=sum.add(factorial); i++; } System.out.println("dispose2: "+sum); } } /* 需求:空心菱形 */ class Case037 { public void test() { dispose(10); } private void dispose(int size) { if (size % 2 == 0) { size++; } for (int i = 1; i <= size; i++) { //特殊区域 if (i == 1 || i == size) { for (int j = 1; j <= size / 2; j++) { System.out.print(" "); } System.out.println("*"); continue; } if (i == size / 2 + 1) { System.out.print("*"); for (int j = 2; j < size; j++) { System.out.print(" "); } System.out.println("*"); continue; } //上半部分 if(i<size/2+1){ int area = size/2-1; int layer = i-1; int lx = area-layer+1; int rx = layer; printEdge(area,lx); //左边 printEdge(area,rx);//右边 System.out.println(); } //下半部分 if(i>size/2+1){ int area = size/2-1; int layer = i-size/2-1; int lx = area-layer+1; int rx = layer; printEdge(area,rx);//左边 printEdge(area,lx); //右边 System.out.println(); } } } private void printEdge(int area, int x) { System.out.print(" "); for(int i=1;i<=area;i++){ if (i == x) { System.out.print("*"); } else { System.out.print(" "); } } } } /* 需求:本实例接受用户在文本框中输入的单行数据,其中数据都是整型数字, 以不同数量的空格分割数字。将这个单行数据分解成一维数组,并从数组中提 取最小值。 */ class Case042 { public void test() { String[] inputs = new String[]{ "12 23 34 21 23 12 323 2 2 3 ", "12 23 34 23 ji 3 21 3 2 32 12 3 2 123" }; for (int i = 0; i < inputs.length; i++) { dispose(inputs[i]); } } private void dispose(String str) { for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (!Character.isDigit(c) && !Character.isSpaceChar(c)) { System.out.println("该输入有不合法字符"); return; } } System.out.println("最小的值:"+findMin(split(str))); } private int[] split(String str) { String[] ints = str.split(" +"); int[] result = new int[ints.length]; for (int i = 0; i < result.length; i++) { result[i]=Integer.valueOf(ints[i]); } return result; } private int findMin(int[] nums) { int min = nums[0]; for (int i = 0; i < nums.length; i++) { if (nums[i] < min) { min = nums[i]; } } return min; } }
Java开发实例大全:3月14日练习的更多相关文章
- 关于苹果开发证书失效的解决方式(2016年2月14日Failed to locate or generate matching signing assets)
前言: 从2月14日開始,上传程序的同学可能会遇到提示上传失败的提示. 而且打开自己的钥匙串,发现所有的证书所有都显示此证书签发者无效. Failed to locate or generate ma ...
- 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题
2016年2月14日以后打包上传AppStore会发现出现如下的问题: 导致问题的原因是:下边这个证书过期了 以下是苹果官方给出的回应: Thanks for bringing this to the ...
- eoe移动开发者大会—移动开发者的极客盛宴 2013年9月14日期待您的加入!!
2013 eoe移动开发者大会北京站即将盛大开启! 大会介绍 由国内最大的移动开发者社区eoe主办,在行业盟友的倾力支持下,集合了来自微软.Google.亚马逊.ARM等跨国公司业务负责人的 ...
- 湖人VS爵士!!科比4月14日最后一战,本赛季最高得分!狂得60分!!完美大逆转!!!
莫愁前路无知己,天下谁人不识君.科比,愿你如迈克尔·乔丹,仍然活跃在篮球界.退役不是结束,而是另一段人生的开始. 北京时间2016年4月14日,湖人101-96击败爵士,科比-布莱恩特告别战,20年职 ...
- 12月14日《奥威Power-BI销售计划填报》腾讯课堂开课啦
2016年的最后一个月也过半了,新的一年就要到来,你是否做好了启程的准备?新的一年,有计划,有目标,有方向,才不至于迷茫.规划你的2017,新的一年,遇见更好的自己! 所以 ...
- 2016年12月14日 星期三 --出埃及记 Exodus 21:9
2016年12月14日 星期三 --出埃及记 Exodus 21:9 If he selects her for his son, he must grant her the rights of a ...
- 2016年11月14日 星期一 --出埃及记 Exodus 20:5
2016年11月14日 星期一 --出埃及记 Exodus 20:5 You shall not bow down to them or worship them; for I, the LORD y ...
- 2016年10月14日 星期五 --出埃及记 Exodus 18:25
2016年10月14日 星期五 --出埃及记 Exodus 18:25 He chose capable men from all Israel and made them leaders of th ...
- Java Calendar获取年、月、日、时间
Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00" ...
随机推荐
- C#高性能大容量SOCKET并发(零):代码结构说明
原文:C#高性能大容量SOCKET并发(零):代码结构说明 C#版完成端口具有以下特点: 连接在线管理(提供在线连接维护,连接会话管理,数据接收,连接断开等相关事件跟踪): 发送数据智能合并(组件会根 ...
- DEPLOYING NATIVE UWP (UNIVERSAL WINDOWS PLATFORM) APPS FOR JAVA DEVELOPERS & PUBLISHING THEM TO THE MICROSOFT STORE
原文: DEPLOYING NATIVE UWP (UNIVERSAL WINDOWS PLATFORM) APPS FOR JAVA DEVELOPERS & PUBLISHING THEM ...
- 笨重的mfc还在基于系统控件,熟练的mfc工程师还比不过学习Qt一个月的学生开发效率高(比较精彩,韦易笑)
作者:韦易笑链接:https://www.zhihu.com/question/29636221/answer/45102191来源:知乎著作权归作者所有,转载请联系作者获得授权. 更新:擦,本来只有 ...
- c#编写的基于Socket的异步通信系统--SanNiuSignal.DLL已开源
自从推出了SanNiuSignal.DLL,用户反映还是满好的;为了更好的服务于大家,我已经修复了很多BUG,同时把这个DLL开源;下面就先来介绍下 使用这个DLL开发出的简单的通信系统;如图: 想使 ...
- x64系统的判断和x64下文件和注册表访问的重定向(举例了GetProcAddress后转成函数指针的用法)
判断一个32位应用程序是否运行在x64系统下,可以使用下面的代码: BOOL IsX64System() { BOOL bIsWow64 = FALSE; typedef BOOL (WINAPI * ...
- 使用VS2010开发Qt程序的4点经验(QT4到QT5的升级,更改sln文件,切换工程使用的Qt库,在VS的Solution Explorer视图中建立文件夹)
导读 相比于Qt Creator,我更喜欢用VS2010来进行开发.虽然启动时间相对较慢,但是VS下强大的快捷键和丰富的插件,以及使用多年的经验,都让我觉得在开发过程中得心应手.其中最重要的一点是,有 ...
- PHP中关于时间、时区、本地时间、UTC时间、GMT时间、时间戳等知识的梳理
在PHP开发中,我们经常会在时间问题上被搞糊涂,比如我们希望显示一个北京时间,但是当我们使用date函数进行输出时,却发现少了8个小时.几乎所有的php猿类都必须对php中几个重要的时间转换等方法进行 ...
- 设计模式之装饰器模式(decorator pattern)
装饰器模式主要对现有的类对象进行包裹和封装,以期望在不改变类对象及其类定义的情况下,为对象添加额外功能.是一种对象结构型模式.需要注意的是,该过程是通过调用被包裹之后的对象完成功能添加的,而不是直接修 ...
- 【设计模式】结构型06享元模式(Flyweight Pattern)
享元模式(Flyweight Pattern) 首先吐槽下这个名字,享元?共享元素的话感觉还是蛮好的~但是这个英文... 意图:更好的重用.管理对象,减少内存开销,节约资源. 主要解决:在有大量重复对 ...
- PATB 1041 考试座位号(15)
#include <cstdio> #include <iostream> using namespace std; struct student{ char str[15]; ...