java-数组入门题

这篇博客介绍了7个Java数组操作的实例,包括声明并填充随机数的int数组,统计正数数量,字符数组的反向输出,查找姓名的字符串数组,字符数组的复制,删除特定元素以及用数组实现斐波那契数列的打印。通过这些实例,读者可以深入理解Java数组的基本操作和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.声明一个int型的数组,循环随机生成13个1到13之间随机数放入到此数组中去,再循环输出


    //    1.声明一个int型的数组,循环随机生成13个1到13之间随机数放入到此数组中去,再循环输出
    public static void fun1() {
        Random rd = new Random();
        int[] arr = new int[13];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = rd.nextInt(13) + 1;
        }
        System.out.println(arrayToString(arr));

    }

2.循环输入5个整数放入到一个整形的数组中,然后再循环数组中的数,统计有多少个数大于0

//    2.循环输入5个整数放入到一个整形的数组中,然后再循环数组中的数,统计有多少个数大于0
    public static void fun2() {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[5];   //声明数组
        int count = 0;      //     累加器
        System.out.println("请依次输入5个整数");
        for (int j = 0; j < arr.length; j++) {
            System.out.print("arr[" + j + "]的值为:");
            arr[j] = sc.nextInt();    //存储输入的值
        }
        System.out.println("数组中的值为" + arrayToString(arr));
        for (int v : arr) {
            if (v > 0) {
                count++;
            }
        }
        System.out.println("数组中大于0的个数为:" + count);
    }

3.声明一个char型的数组,在此数组的单元格中放入"我爱你"三个字符,然后使用循环将它反序输出。如"你爱我"

 /*3.声明一个char型的数组,在此数组的单元格中放入"我爱你"三个字符
              然后使用循环将它反序输出。如"你爱我"*/
    public static void fun3() {
        char[] charArr = {'我', '爱', '你'};
        for (int i = 0; i < charArr.length; i++) {
            System.out.print(charArr[charArr.length - i - 1]);
        }
        System.out.println();
        for(int i = charArr.length-1;i>=0;i--){
            System.out.print(charArr[i]);
        }
    }

4.定义一个长度为5的字符串数组。循环输入5个姓名。然后再输入一个用户的姓名,检查数组中是否有这个人的姓名,并输出所在下标

 /*4.定义一个长度为5的字符串数组。循环输入5个姓名。然后再输入一个用户的姓名
            检查数组中是否有这个人的姓名,并输出所在下标*/
    public static void fun4() {
        String[] StringArr = new String[5];
        Scanner sc = new Scanner(System.in);
        String find;  //存储需要查找的用户名
        boolean flag = false;   //标记查找是否存在
        int k = 0;              //存储查找匹配元素的下标

        for (int i = 0; i < StringArr.length; i++) {
            System.out.println("请输入编号" + (i + 1) + "的姓名:");
            StringArr[i] = sc.next();
        }

        System.out.println("请输入查找的用户名");
        find = sc.next();
        for (int i = 0; i < StringArr.length; i++) {
            if (StringArr[i].equals(find)) {
                flag = true;
                k = i;
                break;
            }
        }

        if (flag == true) {
            System.out.println("查找到该用户,数组下标为:" + k);
        } else {
            System.out.println("找不到该用户");
        }
    }

5.定义一个长度为5的char型数组。初始化为{‘我’,‘爱’,‘你’,‘小’,‘样’}。再定义一个长度为5的char型数组,使用循环将上一个数组中的值全部内容复制到此数组中

  /*5.定义一个长度为5的char型数组。初始化为{'我','爱','你','小','样'}
    再定义一个长度为5的char型数组,使用循环将上一个数组中的值全部内容复制到此数组中*/
    public static void fun5() {
        char[] arr1 = {'我', '爱', '你', '小', '样'};  //初始数组
        char[] arr2 = new char[5];  //目标数组

        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        System.out.println(arr2);


    }

6.循环删除数组中的某一个的元素,如{“张三”,“李四”,“王五”,“赵六”},删除"李四",后面的元素往前推移

 //6.循环删除数组中的某一个的元素,如{"张三","李四","王五","赵六"},删除"李四",后面的元素往前推移
    public static void fun6() {
        String[] str1 = {"张三", "李四", "王五", "赵六"};
        String delName = "李四";
        //定义变量,保存删除元素的索引下标
        int index = -1;

        System.out.println("删除前:");
        System.out.println(arrayToString(str1));

        for (int i = 0; i < str1.length; i++) {
            //判断是否有"李四",找到了,则删除掉
            if (str1[i].equals(delName)) {
                index = i;
                //找到了,删除
                str1[i] = null;
                break;
            }
        }
        //后面的元素往前面推移,从被删除元素的位置后面开始往前移位
        for (int i = index; i < str1.length - 1; i++) {
            str1[i] = str1[i + 1];
        }
        //把最后一位清空

        str1[str1.length - 1] = null;

        System.out.println("删除后:");
        System.out.println(arrayToString(str1));

    }

7、使用一维数组打印斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…,这个数列从第3项开始,每一项都等于前两项之和

/*7、使用一维数组打印斐波那契数列
    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55......,
    这个数列从第3项开始,每一项都等于前两项之和*/

//    方法一:数组实现
    public static void fun7() {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入斐波那契数列的个数: n = ");
        int n = sc.nextInt();
        int[] arr = new int[n];
        arr[0] = 1;
        arr[1] = 1;
        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i - 1] + arr[i - 2];
        }
        System.out.println(arrayToString(arr));
    }

//    方法二:递归实现
    public static void fun8(){
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入斐波那契数列的个数: n = ");
        int n = sc.nextInt();
        for(int i = 1;i<=n;i++){
            System.out.print(f(i)+" ");
        }
    }
    public static int f(int n){

        if(n==1||n==2){
            return 1;
        }
        else{
            return f( n - 1 )+f( n - 2 );
        }

    }

//方法三: 迭代法
    public static void fun9(){
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入斐波那契数列的个数: n = ");
        int n = sc.nextInt();
        int x=1;
        int y=1;
        int z=1;
        for(int i=0;i<n;i++) {
            if(i>=2) {
                z=x+y;
                x=y;
                y=z;
            }
            System.out.print(z+" ");
        }
    }

---------------------------------------------------------------------------------


    //    格式化打印整型数组
    public static String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(",");
            }
        }
        sb.append("]");
        String s = sb.toString();
        return s;
    }

    //   格式化打印字符串数组
    public static String arrayToString(String[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(",");
            }
        }
        sb.append("]");
        String s = sb.toString();
        return s;
    }
《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值