java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习
1 package org.base.practice3; 2 3 import org.junit.Test; 4 5 /** 6 * Created with IntelliJ IDEA. 7 * User: cutter.li 8 * Date: 14-3-10 9 * Time: 上午10:14 10 * java基础练习题第三章 11 */ 12 public class PractiseTest { 13 14 15 @Test 16 public void exercise1() { 17 char x = '你', y = 'e', z = '吃'; 18 19 if (x > 'A') { 20 y = '爱'; 21 z = '情'; 22 } else { 23 y = '我'; 24 } 25 z = '她'; 26 System.out.println(" " + x + y + z); 27 28 } 29 30 @Test 31 public void exercise2() { 32 char c = '\0'; 33 for (int i = 1; i <= 4; i++) { 34 switch (i) { 35 case 1: 36 c = 'b'; 37 System.out.print(c); 38 case 2: 39 c = 'e'; 40 System.out.print(c); 41 break; 42 case 3: 43 c = 'p'; 44 System.out.print(c); 45 default: 46 System.out.print("!"); 47 } 48 } 49 } 50 51 //编写一个程序求1!+2!+3!+...+10! 52 @Test 53 public void exercise3() { 54 55 int sum = 0; 56 57 for (int i = 1; i <= 10; i++) { 58 int factorial = 1; 59 for (int k = 1; k <= i; k++) { 60 factorial *= k; 61 } 62 System.out.println(i + "的阶乘是:" + factorial); 63 sum += factorial; 64 } 65 System.out.println("**********************1到10的阶乘之和是:" + sum); 66 } 67 68 //求100以内的素数(素数指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数。) 69 @Test 70 public void exercise4() { 71 72 for (int i = 1; i <= 100; i++) { 73 74 boolean isPrime = true; 75 for (int k = 2; k <= i; k++) { 76 if (i % k == 0 && i != k) { 77 isPrime = false; 78 break; 79 } else { 80 continue; 81 } 82 83 } 84 if (isPrime && i > 1) { 85 System.out.print(i + " , "); 86 } 87 } 88 } 89 90 //分别用do-while和for计算出1+1/2!+1/3!+...的前20项之和 91 @Test 92 public void exercise5() { 93 int i = 1; 94 float sum = 0; 95 do { 96 int factorial = 1; 97 for (int k = 1; k <= i; k++) { 98 factorial *= k; 99 } 100 sum += (float) 1 / factorial; 101 i++; 102 } while (i <= 20); 103 System.out.println("do-while方法计算的前20项的和是:" + sum); 104 105 106 float he = 0; 107 for (int j = 1; j <= 20; j++) { 108 int jiecheng = 1; 109 for (int m = 1; m <= j; m++) { 110 jiecheng *= m; 111 } 112 he += (float) 1 / jiecheng; 113 } 114 System.out.println("for方法计算的前20项的和是:" + he); 115 } 116 117 //求1000以内的完数(一个数如果恰好等于他的除了本身之外的所有因子数之和,这个数称为完数) 118 @Test 119 public void exercise6() { 120 121 for (int i = 1; i <= 1000; i++) { 122 int sum = 0; 123 for (int k = 1; k <= i; k++) { 124 if (i % k == 0 && k < i) { 125 sum += k; 126 } 127 } 128 if (sum == i) { 129 System.out.print(i + " , "); 130 } 131 } 132 } 133 134 //分别使用while和for计算出8+88+888+...前10项的和 135 @Test 136 public void exercise7() { 137 138 int sum = 0; 139 140 for (int i = 1; i <= 10; i++) { 141 int num = 0; 142 for (int k = 1; k <= i; k++) { 143 num += Math.pow(10, k - 1); 144 145 } 146 System.out.println("第" + i + "的值是:" + num); 147 sum += 8 * num; 148 } 149 150 System.out.println("前10项的和是:" + sum); 151 } 152 153 //计算出1+2+3+...+n<8888 的最大正整数n 154 @Test 155 public void exercise8() { 156 157 int sum = 0; 158 for (int i = 1; i <= Integer.MAX_VALUE; i++) { 159 sum += i; 160 if (sum >= 8888) { 161 System.out.println("最大的整数是:" + (i - 1)); 162 break; 163 } 164 } 165 166 } 167 168 }
2,对基本类工具Date,Calendar,BigInterger,Math的练习
1 package org.base.practice6; 2 3 import org.junit.Test; 4 5 import java.math.BigInteger; 6 import java.text.SimpleDateFormat; 7 import java.util.Calendar; 8 import java.util.Date; 9 10 /** 11 * Created with IntelliJ IDEA. 12 * User: cutter.li 13 * Date: 14-3-10 14 * Time: 下午12:00 15 * java基础知识第六章练习题 16 */ 17 public class PractiseTest { 18 19 //用date的不带参数的构造函数创建日期,输出格式为 星期 小时 分 秒 20 @Test 21 public void exercise1() { 22 23 Date now = new Date(); 24 String nowStr = new SimpleDateFormat("E HH mm ss").format(now); 25 26 System.out.println("当前的时间:" + nowStr); 27 28 29 } 30 31 //输入2006年2月的日历页面,程序要处理闰年的问题 32 @Test 33 public void exercise2() { 34 35 Calendar calendar = Calendar.getInstance(); 36 calendar.set(2006, 2, 1); 37 38 int year = calendar.get(Calendar.YEAR); 39 System.out.println(year + "年" + Calendar.MONTH + "月"); 40 System.out.println("日 一 二 三 四 五 六"); 41 42 int weeks = calendar.get(Calendar.DAY_OF_WEEK); 43 44 int dayOfMonth = 28; 45 if (year % 400 == 0 || (year % 4 == 0 && year % 100 > 0)) { 46 dayOfMonth = 29; 47 } 48 int week = calendar.get(Calendar.DAY_OF_WEEK); 49 for (int k = 1; k < week; k++) { 50 System.out.print("* "); 51 } 52 for (int i = 1; i <= dayOfMonth; i++) { 53 54 System.out.print(i + " "); 55 if (week % 7 == 0) { 56 System.out.println(); 57 } 58 week++; 59 60 } 61 62 } 63 @Test 64 public void exercise3() { 65 66 Calendar calendar1=Calendar.getInstance(); 67 calendar1.set(1988,1,2); 68 69 Calendar calendar2=Calendar.getInstance(); 70 calendar2.setTime(new Date()); 71 72 long days= calendar2.getTimeInMillis()-calendar1.getTimeInMillis(); 73 74 System.out.println("我活了"+days/(24*60*60*1000)+"天"); 75 76 77 } 78 79 @Test 80 public void exercise4() { 81 System.out.println(Math.nextUp(100f)); 82 } 83 @Test 84 public void exercise5() { 85 86 BigInteger sum = BigInteger.ZERO; 87 for (BigInteger i = new BigInteger("1", 10); i.intValue() <= 30; i=i.add(new BigInteger("1"))) { 88 BigInteger factorial = new BigInteger("1"); 89 for (BigInteger k = new BigInteger("1"); k.intValue() <= i.intValue();k= k.add(new BigInteger("1"))) { 90 factorial = factorial.multiply(k); 91 } 92 System.out.println(i+"的阶乘是:" + factorial); 93 sum = sum.add(factorial); 94 } 95 System.out.println("1!+2!+...+30!的和是:" + sum); 96 97 98 } 99 100 }
3,对字符串的一些练习
1 package org.base.practice5; 2 3 import org.junit.Test; 4 5 import java.util.Arrays; 6 7 /** 8 * Created with IntelliJ IDEA. 9 * User: cutter.li 10 * Date: 14-3-10 11 * Time: 下午2:33 12 * 字符串相关练习题 13 */ 14 public class PractiseTest { 15 16 @Test 17 public void exercise1() 18 { 19 String str="I am a 7Road employee !"; 20 21 System.out.println(str); 22 23 System.out.println(str.toLowerCase()); 24 25 System.out.println(str.toUpperCase()); 26 27 } 28 29 @Test 30 public void exercise2() 31 { 32 String str="cutter GG :".concat("do u want to find a job ?"); 33 34 System.out.println(str); 35 36 System.out.println(29&51+((29^51)>>1)); 37 38 39 } 40 41 @Test 42 public void exercise3() 43 { 44 String str="中国科学技术大学"; 45 char a=str.charAt(2),b=str.charAt(6); 46 47 System.out.println(a+" , "+b); 48 } 49 50 @Test 51 public void exercise4() 52 { 53 int a[]={465,2,7979,12,9,3,9655,-10}; 54 55 Arrays.sort(a); 56 57 for(int i:a) 58 { 59 System.out.print(i+" , "); 60 } 61 62 System.out.println(); 63 int b[]= Arrays.copyOf(a,20); 64 65 for(int i:b) 66 { 67 System.out.print(i + " , "); 68 } 69 } 70 71 72 @Test 73 public void exercise5() 74 { 75 Object[] a=new Object[10]; 76 System.arraycopy(new Object[]{"a",0,"cdef",'f'},0,a,0,2); 77 78 for(Object i:a) 79 { 80 System.out.print(i + " , "); 81 } 82 } 83 }
以上练习使用的是junit4.11,为求简单,使用的是命令行输出,为了复习基本的java知识,特找了java2使用教程的练习来练手,看一遍书,温故而知新···
no pays,no gains!