小白备战蓝桥杯:Java常用API

news2025/1/11 0:32:52

一、什么是API

就是别人写好的一些类,给咱们程序员直接拿去调用即可解决问题的

我们之前接触过的Scanner和Random都是API

但java中提供的API很多,我们没有必要去学习所有的API,只需要知道一些常用的API,再借助帮助文档去使用API

二、API帮助文档的使用

1、点击左上角显示->索引,搜索我们需要使用的类

2、使用一个类之前,先看这个类所在的包,如果这个类所在的包是java.lang,则不需要编写导包代码,反之则需要写导包代码(如:import java.util.Scanner)

3、看这个类的介绍

4、看这个类的构造方法,根据构造方法才能将这个对象创建出来

5、看这个类的成员方法,看介绍、方法名、返回值、参数

三、String

String中的成员方法都不会修改原字符串

来自java.lang包,不需要编写导包代码

String是啥?

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现(例如:String s = "abc"可直接创建字符串对象)。

String常见构造方法

        // public String() : 创建一个空白字符串, 里面不含任何内容
        String s1 = new String();
        System.out.println(s1);

        // public String(char[] chs) : 根据传入的字符数组, 创建字符串对象
        char[] chs = {'a','b','c'};
        String s2 = new String(chs);
        System.out.println(s2); // "abc"

        // public String(String original) : 根据传入的字符串, 来创建字符串对象
        String s3 = new String("abc");
        System.out.println(s3);

上面三种方法只是常见,并非常用,最常用的还是String s = "abc"

equals:字符串比较(区分大小写)

s1.equals(s2); //将s1的内容与s2的内容进行比较,返回一个布尔值(相同为true)

equalsIgnoreCase:字符串比较(不区分大小写)

 使用方法和equals一样

toCharArray:将字符串转换成字符数组(常用于字符串遍历)

用这种方式遍历字符串效率更高!

String s = "abc";
char[] c = s.toCharArray();

length:返回字符串长度

注意:字符串中的length是一个方法,所以需要用s.length()

而数组中的length是一个属性,所以直接arr.length

s.length();

charAt:返回指定索引处的char值(常用于字符串遍历)

for(int i=0;i<s.length;i++){
    s.charAt(i);
}

substring:字符串截取 

传一个参数:从beginIndex开始截取到结尾(包含beginIndex)

String s = "itheima";
String result = s.substring(2); //heima

传两个参数:从beginIndex开始截取到endIndex(包含beginIndex,不包含endIndex) 

String s = "itheima";
String result = s.substring(0,2); //it

replace:字符串替换

String s = "itheima";
String result = s.replace("heima","baima"); // itbaima

split:字符串切割

String s = "192,168,1,1";

        String[] sArr = s.split(",");

        for (int i = 0; i < sArr.length; i++) {
            System.out.println(sArr[i]); //{192,168,1,1}
        }

建议: 先正常指定切割规则, 后来发现没有得到自己要的效果, 就可以尝试在规则前面, 加入 \\ 

String s = "192+168+1+1";

        String[] sArr = s.split("\\+");

        for (int i = 0; i < sArr.length; i++) {
            System.out.println(sArr[i]); //{192,168,1,1}
        }

四、StringBuilder

StringBuilder通常会修改原字符串内容

StringBuilder是啥?

StringBuilder类中的方法可大大提高字符串的操作效率!!!

来自java.lang包,不需要编写导包代码

StringBuilder是一个可变的字符序列,而Sring是一个不可变的字符序列

StringBuilder是字符串缓冲区, 将其理解是容器, 这个容器可以存储任意数据类型, 但是只要进入到这个容器, 全部变成字符串

一个有趣的例子:

public static void main(String[] args) {

        long start = System.currentTimeMillis();

        StringBuilder sb = new StringBuilder();

        for(int i = 1; i <= 100000; i++){
            sb.append(i);
        }

        System.out.println(sb);

        long end = System.currentTimeMillis();

        System.out.println(end - start);            // 运行时间:10毫秒

    }

    private static void method() {
        // 获取1970年1月1日0时0分0秒到现在所经历过的毫秒值 (1秒 = 1000毫秒)
        long start = System.currentTimeMillis();

        String s = "";

        for(int i = 1; i <= 100000; i++){
            s += i;
        }

        System.out.println(s);

        long end = System.currentTimeMillis();

        System.out.println(end - start);            // 运行时间:2804毫秒
    }

StringBuilder的构造方法

public StringBuilder() : 创建一个空白的字符串缓冲区(容器), 其初始容量为16个字符(若后续追加超过16则自动扩容)

public StringBuilder(String str) : 创建一个字符串缓冲区(容器), 容器在创建好之后, 就会带有参数的内容

StringBuilder sb = new StringBuilder(); //空字符串,初始长度为16,若后续追加超过16则自动扩容
StringBuilder sb = new StringBuilder("abc");

append:追加,返回对象自己

append(任意类型)

sb.append("红色").append("绿色").append("蓝色");

reverse:反转字符串,返回对象自己

String s = "abc";
s.reverse(); //"cba"

length:返回字符串长度

太简单了,不想多说了

toString:将StringBuilder转化成String并返回

应用场景:我数据在StringBuilder当中, 我要调用的方法是split, 但split在StringBuilder没有, 但是String有

解决: 转换为String, 再调用

StringBuilder和StringBuffer基本一样,只是StringBuilder线程不安全(但执行效率高一些),StringBuffer线程安全(但执行效率低一些)

五、Math工具类

来自java.lang包,不需要编写导包代码

Math类没有对外提供构造方法,且其中所有的成员方法都被static所修饰,所以这是一个工具类,我们调用其中的成员方法直接 类名.方法

        public static int abs (int a) : 获取参数绝对值

        public static double ceil (double a) : 向上取整

        public static double floor (double a) : 向下取整

        public static int round (float a) : 四舍五入

        public static int max (int a, int b) : 获取两个int值中的较大值

        public static double pow (double a,double b) : 返回a的b次幂的值

        public static double random () : 返回值为double的随机值,范围[0.0,1.0)

System.out.println(Math.abs(-123));         // 123
        System.out.println(Math.abs(-12.3));        // 12.3

        System.out.println("---------------------");

        System.out.println(Math.ceil(12.0)); //12.0
        System.out.println(Math.ceil(12.2)); //13.0
        System.out.println(Math.ceil(12.5));
        System.out.println(Math.ceil(12.9));

        System.out.println("---------------------");

        System.out.println(Math.floor(12.0)); //12.0
        System.out.println(Math.floor(12.2)); //12.0
        System.out.println(Math.floor(12.5));
        System.out.println(Math.floor(12.9));

        System.out.println("---------------------");

        System.out.println(Math.round(3.4)); //3
        System.out.println(Math.round(3.6)); //4

        System.out.println("---------------------");

        System.out.println(Math.max(10, 20)); //20
        System.out.println(Math.min(10, 20)); //10

        System.out.println("---------------------");

        System.out.println(Math.pow(2, 3)); //8

        System.out.println("---------------------");

        System.out.println(Math.random());

六、Arrays工具类

public static String toString (类型[] a) : 将数组元素拼接为带有格式的字符串

如果希望不遍历数组就看到数组中的每个元素,可用该方法将数组转成字符串并打印在控制台上

public static boolean equals (类型[] a, 类型[] b) : 比较两个数组内容是否相同

public static int binarySearch (int[] a, int key) : 查找元素在数组中的索引 (二分查找法: 保证数组的元素是排好序的)。如果查找的元素在数组中不存在: 返回 (-(插入点) - 1)

public static void sort (类型[] a) : 对数组进行默认升序排序

int[] arr1 = {11, 22, 33, 44, 55};
        int[] arr2 = {11, 22, 33, 44, 66};

        // 将数组元素拼接为带有格式的字符串
        System.out.println(Arrays.toString(arr1));
        // 比较两个数组内容是否相同
        System.out.println(Arrays.equals(arr1, arr2));

        // 查找元素在数组中的索引
        System.out.println(Arrays.binarySearch(arr1, 33));
        System.out.println(Arrays.binarySearch(arr1, 66));

        int[] nums = {22, 11, 55, 44, 33};
        System.out.println(Arrays.binarySearch(nums, 11));      // 1

        Arrays.sort(nums);
        System.out.println(Arrays.binarySearch(nums, 11));      // 0

        // 对数组进行默认升序排序
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));

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

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

相关文章

蓝桥杯每日一题2023.12.1

题目描述 蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题目而言思路较为重要&#xff0c;实际可以转化为求两个数字对应的操作&#xff0c;输出最前面的数字即可 #include<bits/stdc.h> using namespace std; int main() {for(int i 1…

【前缀和]LeetCode1862:向下取整数对和

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 作者推荐 动态规划LeetCode2552&#xff1a;优化了6版的1324模式 题目 给你一个整数数组 nums &#xff0c;请你返回所有下标对 0 < i, j < nums.length 的 …

steam搬砖项目怎么赚钱?附详细拆解教程

互联网上的赚钱项目如林&#xff0c;为何他人能斩获成果&#xff0c;你却只能望洋兴叹&#xff1f;归根结底&#xff0c;还是因为你的心态过于急功近利。今天&#xff0c;我要为你揭示的Steam实体项目&#xff0c;是专门为热门竞技游戏CS:GO量身打造的。CS:GO&#xff0c;这款风…

自动机器学习AutoML

自动机器学习AutoML AutoMLAuto-SklearnAutoKerasAutoGluonGoogle AutoMLAzure自动机器学习 AutoML 模型的选择和超参数的调节等等任务对于机器学习算法的开发者来说是一件繁琐的工作&#xff0c;为了使得机器可以自动地设计模型并调优&#xff0c;自动机器学习AutoML便应运而…

打破语言障碍:跨境电商中的多语言营销策略

随着全球市场的不断扩大&#xff0c;跨境电商成为企业拓展国际业务的重要途径。然而&#xff0c;语言障碍往往成为企业在跨境电商中面临的挑战之一。为了打破这一障碍&#xff0c;实现全球市场的可持续发展&#xff0c;多语言营销策略变得至关重要。 多语言市场的挑战 在跨境电…

春秋云境:CVE-2022-32991(sql注入)

靶标介绍&#xff1a; 该CMS的welcome.php中存在SQL注入攻击。 获取登录地址 http://eci-2zeb0096que0556y47vq.cloudeci1.ichunqiu.com:80 登录注册 注册成功登录进入注册接口 参数接口一 发现接口参数q http://eci-2zeb0096que0556y47vq.cloudeci1.ichunqiu.com/welcome.p…

使用visual Studio MFC 平台实现对灰度图添加椒盐噪声,并进行均值滤波与中值滤波

平滑处理–滤波 本文使用visual Studio MFC 平台实现对灰度图添加椒盐噪声&#xff0c;并进行均值滤波与中值滤波 关于其他MFC单文档工程可参考 01-Visual Studio 使用MFC 单文档工程绘制单一颜色直线和绘制渐变颜色的直线 02-visual Studio MFC 绘制单一颜色三角形、渐变颜色边…

【openssl】Window系统如何编译openssl

本文主要记录如何编译出windows版本的openss的lib库 1.下载openssl&#xff0c;获得openssl-master.zip。 a.可以通过github&#xff08;网址在下方&#xff09;上下载最新的代码、今天是2023.12.1我用的master版本&#xff0c;下载之后恭喜大侠获得《openssl-master.zip》 …

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开?

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开&#xff1f; 1、在iPhone苹果手机上找到「Safari浏览器」,并点击打开&#xff1b; 2、打开Safari浏览器后&#xff0c;输入词令官方网站地址&#xff1a;ciling.cn ; 3、打开词令官网后&#xff0c;点击Safari…

特殊二叉树——堆

&#x1f308;一、堆的基本概念 1.堆&#xff1a;非线性结构&#xff0c;是完全二叉树 2.堆分为大堆和小堆。 大堆&#xff1a;树中任意一个父亲都大于等于孩子&#xff0c;根节点值大于等于其所有子孙节点的值。 小堆&#xff1a;树中任意一个父亲都小于等于孩子&#xff0c;…

IO / day01 作业。

1.使用fgets统计一个文件的行号 //使用fgets统计一个文件的行号#include <string.h> #include <stdlib.h> #include <stdio.h>int main(int argc, const char *argv[]) {if(argc<2) //获取文件名{printf("input error\n!");printf("usage…

Flutter页面刷新失败?看看是不是这个原因

文章目录 问题描述解决办法在控件A中定义回调函数在页面中使用控件A 原因分析回顾问题原因分析 setState使用注意事项上下文正确性异步更新避免深层嵌套避免频繁调用避免在 build 方法中调用避免在 dispose 方法中调用 问题描述 我用flutter开发了一个页面&#xff0c;页面上有…

苍穹外卖——删除购物车信息

1. 删除购物车中一个商品 1.1 产品原型 1.2 接口设计 1.3 数据模型 shopping_cart表&#xff1a; -- auto-generated definition create table shopping_cart (id bigint auto_increment comment 主键primary key,name varchar(32) null comment 商品名称…

上门服务系统|东郊到家软件提供高效服务的科技支柱

预约上门服务系统的崛起改变了传统服务行业的格局。用户不再需要亲自前往实体店面&#xff0c;而是通过几次点击就能享受到各类服务。这背后离不开预约上门服务系统的智能化和高效性&#xff0c;而源码正是这个系统的灵魂所在。下面小编就给大家介绍下上门服务系统开发优势。 1…

windows 如何卸载证书

1、windows r 2、输入 certmgr.msc 3、进入证书管理&#xff0c;选择个人 4、选择个人---找到要删除的证书&#xff0c;删除 就可以了。

LiveGBS流媒体平台GB/T28181功能-概览中负载信息直播、回放、播放、录像、H265、级联查看负载会话列表

LiveGBS常见问题-概览中负载信息具体表示什么直播、回放、播放、录像、H265、级联等 1、负载信息2、负载信息说明3、会话列表查看3.1、会话列表 4、搭建GB28181视频直播平台 1、负载信息 实时展示直播、回放、播放、录像、H265、级联等使用数目 2、负载信息说明 直播&#x…

SD-WAN组网中的CPE及云服务CPE部署方法

什么是CPE&#xff1f; CPE全称为Customer Premises Equipment&#xff0c;即客户端设备&#xff0c;在SD-WAN中通常为路由器&#xff0c;部署在中心点和分支上&#xff0c;提供连接和路由、协议转换、流量监控等功能。一般可分为硬件CPE和虚拟化CPE&#xff08;virtual CPE&a…

项目设计---网页五子棋

文章目录 一. 项目描述二. 核心技术三. 需求分析概要设计四. 详细设计4.1 实现用户模块4.1.1 约定前后端交互接口4.1.2 实现数据库设计4.1.3 客户端页面展示4.1.4 服务器功能实现 4.2 实现匹配模块4.2.1 约定前后端交互接口4.2.2 客户端页面展示4.2.3 服务器功能实现 4.3 实现对…

带你用uniapp从零开发一个仿小米商场_10.开发一个占剩余窗口的滚动区域

首先是一个头部的tag切换栏,这个很简单,就不多说 源码奉上 <scroll-view scroll-x class"border scroll-row" style"height: 80rpx;"><view class"scroll-row-item" style"height: 80rpx;line-height: 80rpx;" v-for"(…