java入门-API学习

news2024/12/30 2:56:16
package API;//告诉编译器,编译之后应该放到哪个包里

import API.try3.test3;
import API.try3.test5;
import itcast.test2;

import java.util.Random;
import java.util.Scanner;

//导包
public class Introduce {
    public static void main(String[] args) {//别忘记写
        //知识点:包,String类,ArrayList

        //重点:掌握在自己的程序中调用其他包下的程序的注意事项
        //1同一个包下的程序可以直接访问,(eg:test1与Introduce都在一个包下,可以直接访问)
        test1 a=new test1();
        a.print();



        //3.访问其他包下的程序,必须导包才可以访问,鼠标放在test3上选中import class可以自动导入
        test2 b=new test2();
        b.print();
                //eaxmple 2
        test3 c=new test3();
        c.print();

        //4自己的程序中调用Java提供的程序,也需要先导入才可以使用,注意Java.lang包下的程序是不需要我们导入包的,可以直接使用
        Scanner sc=new Scanner(System.in);//System.in 是 Java 标准库中的一个预定义输入流对象,
        // 通常表示标准输入(通常是键盘输入)。当你创建一个 Scanner 对象并将 System.in 传递给它时,你告诉 Scanner 从标准输入流读取数据。
        String s="study";//lang包,所以不会导入
        Random r=new Random();


        //5访问多个其他包下的程序,这些程序名又一样的情况下,默认只能导入一个程序,另一个必须带包名和类名来访问,
        // try3和try4的包中都有test5暂时选择try3中的包导入
        test5 t3=new test5();
        t3.print();//try3中的test5
        //此时需要使用try4中的test5就需要带上包名

        API.try4.test5 d=new API.try4.test5();
        d.print();


    }



}

自动导包设置:

二 String ,API

(1)String 的两种创建方法:

package String_API;

public class StringTry {
    public static void main(String[] args) {
        //掌握String对象,并封装要处理的字符串的两种方式
        //1直接双引号的带字符串对象,封装字符串数据
        String name="learn Java";
        System.out.println(name);

        //2.new String 创建字符串对象,并调用构造器初始化字符串
        String rs1=new String();
        System.out.println(rs1);//打印的是空白

        String rs2 =new String("learn python");
        System.out.println(rs2);
        //传字符数组
        char[] chars={'a','飞','学'};
        String rs3=new String(chars);
        System.out.println(rs3);

        //字节数组转换成字符串对象
        byte[] bytes={98,97,99};
        String rs4=new String(bytes);
        System.out.println(rs4);//bac

    }
}

三:常用字符串的调用方法:

package String_API;

public class StringTheold {
    public static void main(String[] args) {
        String s="学习Java";
        //1.获取字符串的长度
        System.out.println(s.length());//6,中文也是一个字符
        //2 charAt 提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c);//习,说明字符串下标从零开始

        //字符串的遍历s.length.fori实现使用for循环来遍历(0~5)
        for (int i = 0; i < s.length(); i++) {
            char ch=s.charAt(i);
            System.out.println(ch);//会自动换行

        }
        System.out.println("------------------3---------------");
        //3.toCharArray():将字符串转换成字符数组再进行遍历
        char[] chars=s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
//4.equals():判断字符串内容一样就返回true
        String s1=new String("学习");
        String s2=new String("学习");
        System.out.println(s1==s2);//false,因为==会判断地址是否一样
//        int a=1;
//        int b=1;
//        System.out.println(a==b);//true
//所以在字符串中应该用equals方法,实现比较字符串的值
        System.out.println(s1.equals(s2));
        System.out.println("---------------5-------------");
        //equalsIgnoreCase()
        String c1="34A1fg";
        String c2="34a1FG";
        System.out.println(c1.equals(c2));//false
        System.out.println(c1.equalsIgnoreCase(c2));//true

        //
        System.out.println("-------------------6---------------");
        //substring(a,b);截取字符串内容[a,b]为下标

        String s3="Java是最好的编程语言之一";
        String sub=s3.substring(0,8);//左闭右开
        System.out.println(sub);//Java是最好的

        System.out.println("------------------7--------------");
        //substring(c);截取字符串内容,从下标c开始一直截取到最后
        String s4=s3.substring(4);
        System.out.println(s4);//是最好的编程语言之一


        System.out.println("--------------8---------------");
        //replace();把字符串中某个内容替换成新内容,并返回心得字符串对象给我们,常用于替换敏感词
        String info="这个电影不好看";
        String rs3=info.replace("不好看","***");
        System.out.println(rs3);


        System.out.println("-------------------9=---------------");
        //contains()判断字符串中是否包含某个关键字
        String info2="这个电影是最好的,我不爱Java";
        System.out.println(info2.contains("Java"));//true
        System.out.println(info2.contains("java"));//false

        System.out.println("-------------10--------------------");
        //startWith();判断字符串是否以某个字符串开头
        String rs4="张三丰";
        System.out.println(rs4.startsWith("张"));
        System.out.println(rs4.startsWith("张三"));//true

        System.out.println("----------------11----------------");
        //split():把字符串按照指定内容分割成多个字符串,放到一个字符串数组中返回给我们
        String rs="张无忌,周芷若,殷素素,赵明";
        String[] s7=rs.split(",");//代表为,为中断将内容隔开,注意判断是中文还是英文逗号
        for (int i = 0; i < s7.length; i++) {
            System.out.println(s7[i]);
        }




    }
}

(三)String的注意事项

(1)

//1字符串是不变的,他们的值在创建之后无法修改,字节缓冲区支持可变字符串,因为String对象是不可变的,所以可以共享他们。
//每次试图改变字符串对象时,实际上是产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前的字符串对象实际上没有改变,因此String对象是不可变的
String name="Java";
name+="最好";//+运算会产生一个新的对象”Java最好“,将这个存放在堆内存中的对象的地址赋给存放在栈内存中的String name中
name+="的语言之一";
System.out.println(name);

(2)

//2只要是以”...“写出的字符串对象,会放在 堆内存 中的字符串常量池中存储。且相同内容的字符串只存储一份
//但是,通过new方式创建的字符串对象,每New一次都会产生一个新的对象放在堆内存中
String s1="abc";
String s2="abc";
System.out.println(s1==s2);//判断地址是否相同:true

(3)

char[] chs={'a','b','c'};
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);//false  :通过new方式创建的字符串对象,每New一次都会产生一个新的对象放在堆内存中

package String_API;

public class Attention {
    public static void main(String[] args) {
        //1字符串是不变的,他们的值在创建之后无法修改,字节缓冲区支持可变字符串,因为String对象是不可变的,所以可以共享他们。
        //每次试图改变字符串对象时,实际上是产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前的字符串对象实际上没有改变,因此String对象是不可变的
        String name="Java";
        name+="最好";//+运算会产生一个新的对象”Java最好“,将这个存放在堆内存中的对象的地址赋给存放在栈内存中的String name中
        name+="的语言之一";
        System.out.println(name);
        //2只要是以”...“写出的字符串对象,会放在 堆内存 中的字符串常量池中存储。且相同内容的字符串只存储一份
        //但是,通过new方式创建的字符串对象,每New一次都会产生一个新的对象放在堆内存中
        String s1="abc";
        String s2="abc";
        System.out.println(s1==s2);//判断地址是否相同:true


        String a1=new String("abc");
        String a2=new String("abc");
        System.out.println(a1==a2);//false  :通过new方式创建的字符串对象,每New一次都会产生一个新的对象放在堆内存中
    }
}

四:案例-登陆界面

package String_API;

import java.util.Scanner;

public class StringApply {
    public static void main(String[] args) {

        for (int i=0;i<3;i++) {//6,按ctrl+Alt+T键将选中内容放入循环
            //1开发一个登陆界面

            Scanner sc=new Scanner(System.in);
            System.out.println("------------请输入登录名称-----------");
            String loginName=sc.next();
            System.out.println("------------请输入登录密码-----------");
            String PassWord=sc.next();
            //5开始调用登陆方法判断是否陆成功
            boolean result=login(loginName,PassWord);
            if(result){
                System.out.println("欢迎进入系统");
                break;
            }
            else{
                System.out.println("密码错误,请重新输入");
            }
        }


    }
    /*2开发一个登陆方法,接受用户的登录名和密码*/

    public static boolean login(String loginName,String PassWord){
        //3准备一份系统正确的用户名和密码
        String okLoginName="itheima";
        String okPassWord="123456";

        //4开始正式判断用户是否登陆成功
       /* if(okLoginName.equals(loginName) && okPassWord.equals(PassWord)){//注意不适用==,否则不是比较值,而是地址
            //登陆成功
            return true;

        }
        else{
            return false;
        }*/
        //上面代码等价于:
        return okLoginName.equals(loginName) && okPassWord.equals(PassWord);
    }
}

五-验证码开发

package String_API;

import java.util.Random;

public class StringApply2 {
    public static void main(String[] args) {
        //使用String开发验证码,验证码的每位可能是数字大小写字母
        System.out.println(createcode(4));

    }
    /*1设计一个方法,返回指定位数的验证码*/
    public static String createcode(int n){
        /*2定义两个变量,一个是记住产生的随机验证码,一个记住可能使用的随机字符*/
        String code="";
        String data="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        Random r=new Random();
        //3开始定义一个循环,选择产生每位随机字符
        for(int i=0;i<n;i++){
            //4随机一个字符范围内的索引
            int index=r.nextInt(data.length());//填入范围长度
            //5根据索引去全部字符中提取该字符
            code+=data.charAt(index);


        }
        return code;
    }
}

2:ArrayList的API学习

2.1ArrayList的方法概述

package List;

import java.util.ArrayList;

public class arraylist {
    public static void main(String[] args) {
//1创建ArrayList的集合对象
        ArrayList list=new ArrayList();
        //(1)add()将指定元素添加到集合末尾
        list.add("java");
        list.add("java");//可以有重复
        list.add("888.8");
        System.out.println(list);
        //ArrayList和String一样会根据地址找到其中的内容,所以打印出来的是list中的内容
        //约束集合类型:
        ArrayList<String> list2=new ArrayList<>();
        list2.add("jahdja");
        System.out.println(list2);


//2:add(index,element)在此集合的指定位置中插入指定元素
        list.add(1,"add_ele");
        System.out.println("------删除之前---------");
        System.out.println(list);

        //3:remove(),删除指定索引处的元素,返回被删除的元素
        System.out.println(list.remove(3));//“888.8”被删除并返回
        System.out.println(list.remove("java"));//仅删除索引最小的一个(第一次出现),不是所有java元素都删除
        System.out.println(list);
        //set(index,element),将指定索引处的元素替换为指定元素
        list.set(1,"learn java");
        System.out.println(list);

    }

}

2.2ArrayList应用案例

package List;

import java.util.ArrayList;
//掌握从容器中找出某些数据并成功删除的技巧
public class ArrayListApply {
    public static void main(String[] args) {
       //1.创建一个ArrayList集合对象
       ArrayList<String> list=new ArrayList();
       list.add("Java入门");
       list.add("宁夏枸杞");
       list.add("黑枸杞");
       list.add("人字拖");
       list.add("特技枸杞");
       list.add("零食");
        System.out.println(list);
        //2开始完成需求,从集合中找出包含枸杞的数据,并删除:list.fori
        //注意删除一个元素后,后面元素向前移,导致下标改变
       /* for (int i = 0; i < list.size(); i++) {
            //取出当前遍历到的数据
            String ele= list.get(i);
            //判断该字符串中是否包含枸杞
            if(ele.contains("枸杞")){
                System.out.println(ele);
                //直接从集合中删除该元素
                list.remove(ele);
            }

        }*/

        //解决方式一:每次删除一个元素后,就让i往左退一步
       /* for (int i = 0; i < list.size(); i++) {
            //取出当前遍历到的数据
            String ele = list.get(i);
            //判断该字符串中是否包含枸杞
            if (ele.contains("枸杞")) {
                System.out.println(ele);
                //直接从集合中删除该元素
                list.remove(ele);
                i--;

            }
        }
        System.out.println(list);*/
        //方法二:从集合后面倒着遍历并删除就没有问题了
        for(int i= list.size()-1;i>=0;i--){
            //取出当前遍历到的数据
            String ele = list.get(i);
            //判断该字符串中是否包含枸杞
            if (ele.contains("枸杞")) {
                System.out.println(ele);
                //直接从集合中删除该元素
                list.remove(ele);


            }
        }
        System.out.println(list);


    }
}

3.综合案例

主程序:

package List;

import java.util.ArrayList;

public class Apply2 {
    public static void main(String[] args) {
        //商家菜品上架
        //1.设计一个菜品类food,负责创建菜品对象,封装菜品数据
/*

        //2.模拟一些菜品数据
        ArrayList<food> foods=new ArrayList<>();
        food s=new food();
        s.setName("小龙虾");
        s.setPrice(99.8);
        foods.add(s);

        for (int i = 0; i < foods.size(); i++) {
            System.out.println(foods.get(i).getName()+"    "+foods.get(i).getPrice());
        }
*/
        //2.设计一个菜品操作类FoodOperator,负责完成对菜品的业务实现,上架和浏览
        //3运行程序
        FoodOperator f=new FoodOperator();
        f.start();

    }
}

food类,定义变量

package List;

public class food {
    private String foodname;
    private double price;
    private String desc;//描述
    public void setName(String foodname){
        this.foodname=foodname;
    }
    public String getName(){
        return this.foodname;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public food(){

    }

    public food(String foodname, double price, String desc) {
        this.foodname = foodname;
        this.price = price;
        this.desc = desc;
    }
}

foodOperator类

package List;

import java.util.ArrayList;
import java.util.Scanner;

public class FoodOperator {
    //1.定义一个ArrayList集合对象,负责菜品对象信息
    private ArrayList<food> a=new ArrayList<>();
    public void defFoodInfo(){
        food f=new food();
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入菜品名称");
        String name=sc.next();
        f.setName(name);

        System.out.println("请输入菜品价格");
        Double price=sc.nextDouble();
       f.setPrice(price);

        System.out.println("请输入菜品描述");
        String desc=sc.next();
        f.setDesc(desc);

        //将菜品对象放入集合中
        a.add(f);
        System.out.println("菜品信息添加成功");
    }

    public void printDetail(){
        //6展示菜品信息
        if(a.size()==0) {
            System.out.println("暂无菜品,快去上架吧!!!");
            return ;
        }

            for(int i=0;i<a.size();i++){
                food t=a.get(i);
                System.out.println(t.getName()+"   "+t.getPrice()+"    "+t.getDesc());
                System.out.println("--------------------");
            }

    }

    //7设置start()方法,实现菜单选择
    public void start(){
        System.out.println("菜单选择");
        System.out.println("1.上架菜单");
        System.out.println("2.展示菜单");
        System.out.println("3.退出程序");
        while(true){
            System.out.println("输入数字实现对应功能");
            Scanner sc=new Scanner(System.in);
            String command=sc.next();
            switch(command){
                case "1":
                    defFoodInfo();
                    break;
                case "2":
                    printDetail();
                    break;
                case "3":
                    System.out.println("正在退出...");
                    return ;
                default:
                    System.out.println("命令不存在,请重新输入!!!");

            }
        }

    }


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为何2024年这4款ai智能写作工具被赞为YYDS?

在数字化的大潮中&#xff0c;人工智能已经深入到我们生活的各个角落&#xff0c;当然也包括写作领域。随着ai智能写作工具的兴起&#xff0c;它们不仅显著提升了写作效率&#xff0c;还为创作打开了全新的可能性。今天&#xff0c;我们就来看看四款特别受欢迎的AI写作工具&…

QT log4qt 记录日志

一.环境 Qt 5.15.2 log4qt 二.源码 1.编译 log4qt 源码,生成dll文件,并将.h 拷贝至项目目录 2.main.cpp #include "mainwindow.h"#include <QApplication> #include <QDir> #include "Log4Qt/logmanager.h" #include "Log4Qt/pattern…

职场离职潮:年轻人的选择与挑战

近年来&#xff0c;随着社会的发展和个人价值观的变化&#xff0c;越来越多的人开始主动或被动地离开职场。这一现象在社交网络上引发了广泛的讨论&#xff0c;甚至出现了专门分享离职经历的“离职博主”。为了深入了解这一趋势背后的真实情况&#xff0c;近日相关机构展开了一…

【传输层协议】UDP和TCP协议

UDP协议 UDP协议全称为User Datagram Protocol&#xff0c;用户数据报协议。UDP协议报文格式如下&#xff1a; 16UDP长度。表示整个数据报的最大长度&#xff0c;即UDP首部UDP数据。这个字段帮助我们确保在网络字节流中获取完整的UDP报文信息。校验和&#xff1a;用于检测数…

法兰式满油阀SPF-125-12C、STF-125-12C

法兰式满油阀又名预充阀、充液阀&#xff0c;合金钢和球墨铸铁材质&#xff0c;体积小&#xff0c;易于拆卸&#xff0c;低压损&#xff0c;流量大&#xff0c;构造简单&#xff0c;耐久性佳&#xff0c;可直接装置于油缸盖侧&#xff0c;SPF-32-12C、STF-32-12C、SPF-50-12C、…

ZooKeeper中间件监控指标解读

监控易是一款功能全面的IT监控软件&#xff0c;能够实时监控各类IT资源和应用的状态&#xff0c;包括中间件、数据库、网络设备等。对于ZooKeeper这一重要的分布式协调服务中间件&#xff0c;监控易提供了详尽的监控指标&#xff0c;帮助用户全面了解ZooKeeper集群的运行状态。…

鸿蒙(API 12 Beta2版)NDK开发【使用Node-API接口进行异步任务开发】

使用Node-API接口进行异步任务开发 场景介绍 napi_create_async_work是Node-API接口之一&#xff0c;用于创建一个异步工作对象。可以在需要执行耗时操作的场景中使用&#xff0c;以避免阻塞主线程&#xff0c;确保应用程序的性能和响应性能。例如以下场景&#xff1a; 文件…

最新版Polyverse - Music Bundle Deal [06.2024],win和mac,支持intel和M1芯片

一。Polyverse插件套装 Polyverse - Music Bundle Deal 1.释放您的创作潜力 无论您是希望突破创作极限的音乐制作人&#xff0c;还是寻求新颖创新方式来增强混音的音频工程师&#xff0c;Polyverse 捆绑包交易都具有非凡的价值&#xff0c;可以帮助您将音乐提升到一个新的水平…

【数学建模】【优化算法】:【MATLAB】从【一维搜索】到】非线性方程】求解的综合解析

目录 第一章&#xff1a;一维搜索问题 黄金分割法 股票交易策略优化 总结&#xff1a; 第二章&#xff1a;线性规划 线性规划&#xff08;Simplex 算法&#xff09; 生产计划优化 总结&#xff1a; 第三章&#xff1a;无约束非线性优化问题 梯度下降法 神经网络训练…

Python中导入不同文件夹中的函数

1、代码举例&#xff1a;from Python_CodeFile.LDAP3.del_file.Get_Computer_Dn import get_computer_dn # 以上代码导入路径为&#xff1a;Python_CodeFile/LDAP3/del_file/Get_Computer_Dn.py 文件中的get_computer_dn函数。

传统放牧方式与北斗科技的碰撞:北三短报文头羊定位追踪器PD28守护放牧生活

在大草原的广袤天地中&#xff0c;放牧生活是蒙古族人民的传统之一。然而&#xff0c;除了美丽和自由&#xff0c;放牧生活也伴随着一些危险。以前由于科技落后&#xff0c;人工成本低&#xff0c;主要依靠人力去放牧&#xff0c;牧民放牧顶风踏雪走个几十公里都极为寻常。除了…

AI识别智能称重-收银系统源码

系统概况 专门为零售行业的连锁店量身打造的收银系统&#xff0c;适用于常规超市、生鲜超市、水果店、便利店、零食专卖店、服装店、母婴用品、农贸市场等类型的门店使用。同时线上线下数据打通&#xff0c;线下收银的数据与小程序私域商城中的数据完全同步&#xff0c;如商品…

【ROS 最简单教程 005/300】ROS + VSCode 开发环境快速搭建

VSCode 全称 Visual Studio Code&#xff0c;是微软出的一款轻量级代码编辑器&#xff0c;免费、开源而且功能强大 本篇将以最简单的方法引导基于 VSCode 的&#xff0c;超全面开发环境的搭建及相关配置完全不了解 ROS 编程的友友&#xff0c;建议先看 &#x1f449;快速体验 指…

WIFI7在游戏领域引发的变革

随着无线技术的快速进步&#xff0c;游戏体验正变得愈加丰富、复杂和逼真。现在最新的WIFI 7技术将带来新的飞跃&#xff0c;不仅有望重新定义网络游戏的体验&#xff0c;还有可能彻底革新整个游戏产业。可以想象一下&#xff0c;在未来&#xff0c;游戏世界不再有延迟和连接中…

【嵌入式】一种基于串口命令的模块测试API模板

本文主要记录一种用于嵌入式开发中【模块测试】通用模板&#xff0c;使用 getopt_long()函数作为串口命令行解析的工具&#xff0c;从而进行测试代码逻辑的编写。 本文以ADC 和 uart 测试为例&#xff0c;介绍函数的使用以及测试代码的编写 【测试环境说明 】 本文是在 rt-thr…

一篇长文搭建AI大模型应用平台架构

在研究了6家知名公司如何部署生成式AI应用程序后&#xff0c;注意到它们的平台有很多相似之处。概述了生成式AI大模型应用平台的常见组件、它们的作用以及它们的实现方式。尽力保持架构的通用性&#xff0c;但某些应用程序可能会有所不同。 Generative AI大模型应用平台整体架…

数据集相关类代码回顾理解 | StratifiedShuffleSplit\transforms.ToTensor\Counter

【PyTorch】图像多分类项目 目录 StratifiedShuffleSplit transforms.ToTensor Counter StratifiedShuffleSplit sss StratifiedShuffleSplit(n_splits1, test_size0.2, random_state0) 创建StratifiedShuffleSplit对象&#xff0c;用于将数据集划分为训练集和测试集。 …

农业物联网气象站的工作原理

TH-NQ10农业物联网气象站是一款集成了物联网与气象技术的创新设备&#xff0c;它在现代农业中扮演着重要角色&#xff0c;为农业生产提供了精准、实时的气象数据支持。以下是对农业物联网气象站的详细介绍&#xff1a; 定义与特点 农业物联网气象站通过物联网技术将气象观测设…

详解校门外的树(树状数组)

前言 在看之前建议先看一下 【学习笔记】详解树状数组-CSDN博客 题目 思路 建立两个树状数组,维护左括号与右括号。 假设有一个长度为10的数轴&#xff0c;我们要将区间[ 2 , 5 ]中种树&#xff0c;这时&#xff0c;我们将 2 处放一个左括号 ” ( ” ,5处放一个 ” )” &…

负载均衡的作用、负载均衡常用处理方式、四层和七层负载均衡的区别、及配置方法

一、负载均衡的作用 解决服务器的高并发压力&#xff0c;提高应用程序的处理性能&#xff1b; 提供故障转移&#xff0c;实现高可用&#xff1b; 通过添加或减少服务器数量&#xff0c;增强网站的可扩展性&#xff1b; 在负载均衡器上进行过滤&#xff0c;可以提高系统的安…