首页 > 其他分享 >API学习

API学习

时间:2024-03-27 19:23:28浏览次数:22  
标签:String System 学习 println API 字符串 public out

ArrayList

集合:一种容器,用来存储数据且集合的大小可变

ArrayList:是集合中最常见的一种,ArrayList是泛型类,可以约束存储的数据类型
ArrayList<Food> listFood = new ArrayList<Food>();
listFood 集合内存储的是堆内存中对象的地址
1.构造器:
public ArrayList() 创建一个空的集合对象

2.常用方法

增:
//将指定的元素添加到此集合的末尾
  public boolean add(E e)
//在此集合中的指定位置插入指定的元素
  public void add(int index,E e)

删:
//删除指定索引处的元素,返回被删除的元素
  public E remove(int index)
//删除指定的元素,返回删除是否成功
  public boolean remove(Object o)

改:
//修改指定索引处的元素,返回被修改的元素
  public E set(int index,E e)

查:
//返回索引处的元素
  public E get(int index)
//返回集合中的元素的个数
  public int size()

pakage

在自己程序中调用其他报下的程序的注意事项
1.如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)
2.如果当前程序中,要调用其他包下的程序,则必须再当前程序中导包,才可以访问。(导包格式:import 包名.类名)
3.如果当前程序中,要调用Java提供的程序粗,也需要先导包才可以使用;但是Java.lang包下的程序是不需要我们导包的,可以直接使用。
4.如果当前程序中,要调用多个包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。

String

String类创建对象封装数据有两种方式
方式一:直接使用双引号"..."
方式二:new String类,调用构造器初始化字符串对象
1.public String() 创建一个空白字符串对象,不含有任何内容
2.public String(char[] chars) 根据字符数组的内容,来创建字符串对象
3.public String(byte[] bytes) 根据字节数组的内容,来创建字符串对象
  byte[] bytes = {97,98,99}; 97 -> a ,98 -> b ,99 -> c
  String r = new String(bytes); r -> "abc"
  System.out.println(r);

String提供的操作字符串数据的常用方法
//获取字符串的长度返回
1.public int length()

//获取某个索引位置处的字符返回
2.public char charAt(int index)

//将当前字符串转换成字符数组返回
3.public char[] toCharArray()

//判断当前字符串与另一个字符串的内容一样,一样返回true
4.public boolean equals(Object anObject)
//判断当前字符串与另一个字符串的内容一样(忽略大小写),一样返回true
5.public boolean equalsIgnoreCase(String anotherString)

//根据开始和结束索引进行截取,得到新的字符串(包前不包后)
6.public String substring(int beginIndex,int endIndex)
//从传入的索引处截取,得到新的字符串返回
7.public String substring(int beginIndex)
//使用新值,将字符串中的旧值替换,得到新的字符串
8.public String replace(charSequence target,charSequence replacement)

//判断字符串中是否包含了某个字符串
9.public boolean contains(charSequence s)
//判断字符串是否以某个字符串内容开头,开头返回true
10.public boolean startWith(String prefix)
//把字符串按照某个字符串内容分割,并返回字符串数组
11.public String[] split(String regex)

String的注意事项
1.String的对象是不可变字符串对象
  只要是以"..."方式写出的字符串对象,会在堆内存中的字符串常量池中存储。
  每次试图改变字符串对象实际上是新产生了新的字符串对象,变量每次都是指向了新的字符串对象,之前的字符串对象
  的内容确实是没有改变的,因此说String的对象是不可变的。

2.只要是"..."方式写出的字符串对象,会存储导字符串常量池,且相同内容的字符串只存储一份。 ->节约内存
  但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。

3.字符串常量池位于堆区

4.Java存在编译优化机制,程序在编译时:"a"+"b"+"c"会直接转成"abc",  以提高程序的执行性能。

demo01

package com.item.huang.demo01;

/*
* 1.开发登录界面,提示用户通过键盘输入登录名和密码
* 2.设计一个登录方法,对用户的登录名和密码进行正确性认识
* 3.根据登录方法返回的认证结果,判断用户是否登录成功
* 4.使用循环控制登录界面最多显示3次
 */

import java.security.PublicKey;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //4.使用循环控制登录界面最多显示3次
        for (int i = 0; i < 3 ; i++) {
            //1.开发登录界面
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入登录名:");
            sc.hasNext();
            String logicName = sc.next();
            System.out.println("请输入密码:");
            sc.hasNext();
            String password = sc.next();
            //3.根据登陆方法返回的认证结果,判断用户是否成功
            if (logic(logicName,password)){
                System.out.println("恭喜登陆成功!");
                break;
            }else {
                System.out.println("登录名或密码错误!");
            }
        }
    }
    //2.设计登录方法,判断用户的登录名和密码是否正确
    public static boolean logic(String logicName,String passWord){
        String rightLogicName = "huang";
        String rightPassWord = "123456";
        //不能使用 == 号,这样比较的是两个字符串对象的地址,会出现 bug
        return rightLogicName.equals(logicName)&&rightPassWord.equals(passWord);
    }
}

demo02

package com.item.huang.demo02;

import java.util.Random;

//随机生成指定位数的验证码
public class Test {
    public static void main(String[] args) {
        System.out.println(createCode(5));
        System.out.println(createCode(10));
    }

    //1.设计一个方法,返回指定位数的验证码
    public static String createCode(int number){
        //2.创建2个字符串,一个字符串用来存储验证码,另一个字符串包含所有随机字符
        String code = "";
        String totalChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        //3.随机生成指定位数的验证码
        for (int i = number; i > 0; i--) {
            code += totalChars.charAt(random.nextInt(totalChars.length()));
        }
        return code;
    }
}

arrayListDemo01

package com.item.huang.arraylistdemo01;

import java.util.ArrayList;

//需求:
//现在假如后无车中存储了如下这些商品;Java入门,宁夏枸杞,黑枸杞,人字拖,特级枸杞,枸杞子。
//现在用户不想买枸杞,选择了批量删除,请完成此需求
public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //1.后台使用ArrayList集合表示购物车,存储这些商品名
        list.add("Java入门");
        list.add("宁夏枸杞");
        list.add("黑枸杞");
        list.add("人字拖");
        list.add("特级枸杞");
        list.add("枸杞子");
        System.out.println(list);
        System.out.println("==================================================");
        //2.遍历集合中的每个数据,只要这个数据包含了"枸杞"则删除它
        for (int i = 0; i < list.size(); i++) {
            String r = list.get(i);
            if (r.contains("枸杞")){
                list.remove(i);
                //删除一个集合元素,下标往前移一位
                i--;
            }
        }
//        //方法二
//        //从后往前遍历集合中的每个数据,只要这个数据包含了"枸杞"则删除它
//        //包含 i--
//        for (int i = list.size()-1; i >= 0 ; i--) {
//            String r1 = list.get(i);
//            if (r1.contains("枸杞")){
//                list.remove(i);
//            }
//        }
        //3.输出集合看是否已经成功删除了全部枸杞数据
        System.out.println(list);
    }
}

arrayListDemo02

Food

package com.item.huang.arraylistdemo02;

//1.设计一个菜品类 Food ,负责创建菜品对象 , 封装菜品数据
public class Food {
    private String name;
    private double price;
    private String info;

    public Food() {
    }

    public Food(String name, double price, String info) {
        this.name = name;
        this.price = price;
        this.info = info;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

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

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

FoodOperator

package com.item.huang.arraylistdemo02;

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

//2.设计一个菜品操作类 , 负责完成对菜品的业务实现: 上架 , 浏览信息
public class FoodOperator {
    //创建菜单集合,存放菜品
    private ArrayList<Food> listFood = new ArrayList<Food>();

    //3.上架菜品
    public void order(){
        Scanner sc = new Scanner(System.in);
        Food food = new Food();
        System.out.println("请输入菜品名称:");
        sc.hasNext();
        food.setName(sc.next());
        System.out.println("请输入菜品价格:");
        sc.hasNextDouble();
        food.setPrice(sc.nextDouble());
        System.out.println("请输入菜品其他信息:");
        sc.hasNext();
        food.setInfo(sc.next());
        System.out.println("------------------------------");
        listFood.add(food);
    }
    //4.浏览菜品信息
    public void look(){
        if(listFood.size()==0){
            System.out.println("没有上架任何菜品!!!");
            System.out.println("--------------------------------");
        }else {
            for (int i = 0; i < listFood.size(); i++) {
                System.out.println(listFood.get(i).getName());
                System.out.println(listFood.get(i).getPrice());
                System.out.println(listFood.get(i).getInfo());
                System.out.println("---------------------------------");
            }
        }
    }
    //5.启动菜品业务
    public void start(){
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("你已进入菜单!!!");
            System.out.println("输入 1 上架你的菜品");
            System.out.println("输入 2 浏览你的菜品");
            System.out.println("输入 3 退出菜单");
            System.out.println("----------------------------------");
            sc.hasNext();
            String command = sc.next();
            switch (command){
                case "1":
                    order();
                    break;
                case "2":
                    look();
                    break;
                case "3":
                    return;
                default:
                    System.out.println("输入的命令有问题!!!");
            }
        }

    }
}

Test

package com.item.huang.arraylistdemo02;

public class Test {
    public static void main(String[] args) {
        FoodOperator foodOperator = new FoodOperator();
        foodOperator.start();
    }
}

标签:String,System,学习,println,API,字符串,public,out
From: https://www.cnblogs.com/qingandji/p/18100028

相关文章

  • 基于深度学习的缺陷检测系统如何进行性能评估呢
    基于深度学习的缺陷检测系统进行性能评估时,通常会考虑多个指标以确保系统的准确性和可靠性。以下是一些关键的评估方法和指标:准确度(Accuracy):这是最基本的性能指标,用于衡量系统正确识别缺陷和非缺陷样本的能力。准确度越高,说明系统的性能越好。精确率(Precision):精确率关注的是系......
  • 【图论】3.26学习记录 最短路/最长路 次短路
    最短路:SPFA:特点:代码短好写,负权边必备,可以判环,容易被卡成O(nm);code:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintMAXN=5e5+10;constintinf=2147483647;intdist[MAXN];intvis[MAXN];vector<pair<int,int>>e[MAXN];si......
  • C语言学习之第一个C语言程序【建议收藏】
    环境搭建好了C语言学习之环境搭建【建议收藏】-CSDN博客,接下来让我们一起来用VC编写第一个C语言程序吧!保姆级教程,非常建议小白学习使用,建议收藏!第一个C语言程序 双击打开VC,然后点击新建项目:按照图上的步骤,创建新项目→点击确定引导点击下一步:应用程序设置:项目创建完成:外......
  • 如何构建一台机器学习服务器
    如何构建一台机器学习服务器Version:V1.0Author:NeoNexusDate:2024.03.26服务器设计要求:高性能、满足同时多人开发的需求、架构清晰、后期方便维护。因此写下此文档。基于最先进的架构、最先进硬件。监修中敬告本文处于Preview阶段,不对文章内容负任何责任,如有意见探讨欢迎......
  • 【文化课学习笔记】【数学】导数(下)
    【数学】导数(下)导数的分类讨论基本原理导数的正负决定函数的单调性,所以可以根据导数的正负不同分类。零点的个数会决定导数的正负分布区间的个数。一般为了知道导数的正负区间,可以通过画图象的方法(一般需要画出单调性和零点)来求得。所以分类讨论的标准如下:讨论有无零点,......
  • 我的计算机学习之旅:从热爱到规划!
    第一部分:结缘计算机在选择计算机专业之前,我曾认真考虑过自己的兴趣和能力。我对计算机的兴趣起源于小时候的一次偶然机会,当时我第一次接触到计算机,被它神奇的功能所吸引。随着时间的推移,我越来越深入地了解计算机,并发现自己对它的兴趣越来越浓厚。因此,我决定选择计算机专业作为我......
  • 向前辈学习
    转载自:https://www.cnblogs.com/ceqt/archive/2011/05/21/2053042.html 酱醋茶的话:最近在看。NET内存管理宝典,知道了译者涂曙光前辈的事迹之后大为震撼,特此转载,以供激励其他小伙伴~从中专学历的服务员到微软MCSD专家涂曙光,微软简洁的名片上,他的职务写着:解决方案技术专家,微软......
  • Vue学习笔记64--路由简介
    路由简介 路由就是一组key-value的对应关系多个路由,需经过路由器进行管理SPA应用:singlepagewebapplication(单页面web应用)Vue-router一:相关理解vue-router:vue的一个插件库(需安装--npminstallvue-router--save),专门用来实现SPA应用对SPA应用的理解singlepa......
  • Vue学习笔记65--常用插件安装指令
    常用插件安装指令nanoid:用于生成唯一主键id第一步:npminstallnanoid第二步:import{nanoid}from'nanoid'第三步:id:nanoid(), //也可以指定生成字符串的长度,如nanoid(5)uuid:用于生成唯一主键id第一步:npminstalluuid第二步:import {v4 asuuidv4 } from ......
  • 想成为红队大佬却不知道学习路线???(附红队之路-配套源码工具)
    红队到底是做什么的?在红队中,您需要仿真、模拟或以其他方式扮演某个、某组入侵者或理论上的假想敌。这些活动通常以单独的演习或练习的形式出现,其目的是训练蓝队,蓝队由负责各种防御工事的小组或个人组成。并且,这种对抗可以在任何层面上开展,从应用程序的安全性到主动防御设施,等......