Java学习二十二
实例练习
1、
package Java方法; /* 标签(Label) Java 中的标签是为循环设计的,是为了在多重循环中方便的使用 break 和coutinue */ public class _10Label { public static void main(String[] args) { String str = "This is the string in which you have to search for a substring."; String sub = "substring"; boolean flag=false; int max=str.length()-sub.length(); testb1: //标签 for(int i=0;i<max;i++){ int len=sub.length(); int j=i; int k=0; while(len--!=0){ if(str.charAt(j++)!=sub.length()){//charAt()返回指定索引处的值 continue testb1; } } flag=true; break testb1; } if(flag){ System.out.println("发现子字符串"); }else{ System.out.println("没有发现子字符串"); } } }
2、
package Java方法; /* enum 和 switch 语句使用 Java 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类 */ public class _11EnumAndSwitch { public static void main(String[] args) { Car c; c=Car.tata; switch(c){ case lamborghini: System.out.println("你选择了 lamborghini!"); break; case tata: System.out.println("你选择了 tata!"); break; case audi: System.out.println("你选择了 audi!"); break; case fiat: System.out.println("你选择了 fiat!"); break; case honda: System.out.println("你选择了 honda!"); break; default: System.out.println("我不知道你的车型。"); break; } } } enum Car {//枚举 lamborghini,tata,audi,fiat,honda; }
3、
package Java方法; /* Enum(枚举)构造函数及方法的使用 */ public class _12EnumStructer { public static void main(String[] args) { System.out.println("所有汽车价格:"); for(Cae c:Cae.values()){//枚举类有一个values()方法,这个方法可以将枚举类转换成一个枚举类型的数组,转换成数组之后我们就可以通过下标来访问我们的枚举类中的值 System.out.println(c+"需要"+c.getPrice()+"千美元"); } } } enum Cae{ lamborghini(900),tata(2),audi(50),fiat(15),honda(12); private int price; Cae(int p){ price=p; } int getPrice(){ return price; } }
4、
package Java方法; /* for 和 foreach循环使用 for 语句比较简单,用于循环数据。 for循环执行的次数是在执行前就确定的 for(初始化; 布尔表达式; 更新) { //代码语句 } foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便 for(元素类型t 元素变量x : 遍历对象obj){ 引用了x的java语句; } */ public class _13ForAndForeach { public static void main(String[] args) { int[] s={1,2,3,4}; forDisplay(s); foreachDisplay(s); } public static void forDisplay(int[] a){ System.out.println("使用for循环数组:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } System.out.println(); } public static void foreachDisplay(int[] data){ System.out.println("使用foreach数组:"); for(int a:data){ System.out.print(a+" "); } } }
5、
package Java方法; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* 三种for循环 */ public class _14ThreeCycle { public static void main(String[] args) { int[] array={1,2,34,5}; System.out.println("-----使用for循环-----"); for(int i=0;i<array.length;i++){ System.out.println(array[i]); } System.out.println("-----使用foreach循环-----"); //增强for循环foreach for(int element:array){ System.out.println(element); } System.out.println("-----使用foreach二维数组-----"); int[][] arr={{1,2,3},{4,5,6},{7,8,9}}; for(int[] row:arr){ for(int elm:row){ System.out.println(elm); } } //以三种方式遍历集合 List List<String> list=new ArrayList<String>(); list.add("Google"); list.add("Runoob"); list.add("Taobao"); System.out.println("-----putongfor循环-----"); for(int i=0;i< list.size();i++){ System.out.println(list.get(i)); } System.out.println("-----迭代器-----"); for(Iterator it= list.iterator();it.hasNext();){ System.out.println(it.next()); } System.out.println("----------方式3:For-Each 循环-----------"); for(String str: list) { System.out.println(str); } } }
6、
package Java方法; /* Varargs 可变参数使用 Java1.5提供了一个叫varargs的新功能,就是可变长度的参数。 "Varargs"是"variable number of arguments"的意思。有时候也被简单的称为"variable arguments" 定义实参个数可变的方法:只要在一个形参的"类型"与"参数名"之间加上三个连续的"."(即"...",英文里的句中省略号),就可以让它和不确定个实参相匹配。 */ public class _15Varargs { static int sumv(int...arr){ int sumv,i; sumv=0; for(i=0;i<arr.length;i++){ sumv+=arr[i]; } return(sumv); } public static void main(String[] args) { int sum=0; sum=sumv(new int[]{10,20,30}); System.out.println("数字相加之和:"+sum); } }
7、
package Java方法; /* 重载(overloading)方法中使用 Varargs */ public class _16Varargs2 { public static void main(String[] args) { va(1,2,3); va3("测试:",10,20); va1(true,false,false); } static void va(int...no){ System.out.println("vaTest(int ...): " + "参数个数: " + no.length +" 内容: "); for(int n:no) System.out.println(n+" "); System.out.println(); } static void va1(boolean...bl){ System.out.print("vaTest(boolean ...) " + "参数个数: " + bl.length + " 内容: "); for(boolean b : bl) System.out.print(b + " "); System.out.println(); } static void va3(String msg, int ... no) { System.out.print("vaTest(String, int ...): " + msg +"参数个数: "+ no.length +" 内容: "); for(int n : no) System.out.print(n + " "); System.out.println(); } }
8、
package 打印图形; //打印菱形 public class _1Rhombus { public static void main(String[] args) { print(8); } public static void print(int size){ if(size%2==0){ size++;//计算菱形大小 } for(int i=0;i<size/2+1;i++){ for(int j=size/2+1;j>i+1;j--){ System.out.print(" ");//输出左上角的空白 } for(int j=0;j<2*i+1;j++){ System.out.print("*"); } System.out.println(); } for(int i=size/2+1;i<size;i++){ for(int j=0;j<i-size/2;j++){ System.out.print(" "); // 输出菱形左下角空白 } for(int j=0;j<2*size-1-2*i;j++){ System.out.print("*"); } System.out.println(); } } }
9、
package 打印图形; //打印九九乘法表 public class _2MutiplicationTable { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"x"+j+"="+i*j+" "); } System.out.println(); } } }
10、
package 打印图形; //打印三角形 public class _3Triangle { public static void main(String[] args) { for(int i=1;i<=5;i++){ for(int j=5;i<=j;j--) System.out.print(" "); for(int j=1;j<=i;j++) System.out.print("*"); for(int j=1;j<i;j++) System.out.print("*"); System.out.println(); } } }
11、
package 打印图形; //打印倒立三角形 public class _4InvertedTriangle { public static void main(String[] args) { //打印倒立的三角形 for (int m = 1; m <= 4; m++) { //打印空格 for (int n = 0; n <= m; n++) { System.out.print(" "); } //打印* for (int x = 1; x <= 7 -2 * (m - 1); x++) { System.out.print("*"); } System.out.println(); } } }
12、
package 打印图形; //打印平行四边形 public class _5Parallelogram { public static void main(String[] args) { //外层循环,每次打印一个* for(int i=1;i<=5;i++){ //填充空格 for(int j=1;j<=5-i;j++){ System.out.print(" "); } //内层循环,每次打印一个* for(int k=1;k<=5;k++){ System.out.print("*"); } System.out.println(); } } }
13、
package 打印图形; //打印矩形 public class _6Rect { public static void main(String[] args) { //外层循环,每次输出一行* for(int i=1;i<=5;i++){ System.out.print("*"); //内层循环,每次输出一个* for(int j=1;j<=5;j++){ System.out.print("*"); } System.out.println(); } } }