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();
        }
    }
}

 

posted on 2021-10-14 23:02  跨越&尘世  阅读(38)  评论(0编辑  收藏  举报