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

目录

一、什么是API

二、API帮助文档的使用

三、String

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

String是啥?

String常见构造方法

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

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

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

length:返回字符串长度

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

substring:字符串截取 

​编辑

replace:字符串替换​编辑

split:字符串切割

四、StringBuilder

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

StringBuilder是啥?

StringBuilder的构造方法

append:追加,返回对象自己

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

length:返回字符串长度

toString:将StringBuilder转化成String并返回

五、Math工具类

        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)

六、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) : 对数组进行默认升序排序


一、什么是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));         // 123System.out.println(Math.abs(-12.3));        // 12.3System.out.println("---------------------");System.out.println(Math.ceil(12.0)); //12.0System.out.println(Math.ceil(12.2)); //13.0System.out.println(Math.ceil(12.5));System.out.println(Math.ceil(12.9));System.out.println("---------------------");System.out.println(Math.floor(12.0)); //12.0System.out.println(Math.floor(12.2)); //12.0System.out.println(Math.floor(12.5));System.out.println(Math.floor(12.9));System.out.println("---------------------");System.out.println(Math.round(3.4)); //3System.out.println(Math.round(3.6)); //4System.out.println("---------------------");System.out.println(Math.max(10, 20)); //20System.out.println(Math.min(10, 20)); //10System.out.println("---------------------");System.out.println(Math.pow(2, 3)); //8System.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));      // 1Arrays.sort(nums);System.out.println(Arrays.binarySearch(nums, 11));      // 0// 对数组进行默认升序排序Arrays.sort(nums);System.out.println(Arrays.toString(nums));

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玄子Share-CSS3 弹性布局知识手册

玄子Share-CSS3 弹性布局知识手册 Flexbox Layout&#xff08;弹性盒布局&#xff09;是一种在 CSS 中用于设计复杂布局结构的模型。它提供了更加高效、简便的方式来对容器内的子元素进行排列、对齐和分布 主轴和交叉轴 使用弹性布局&#xff0c;最重要的一个概念就是主轴与…

从零开始训练一个ChatGPT大模型(低资源,1B3)

macrogpt-prertrain 大模型全量预训练(1b3), 多卡deepspeed/单卡adafactor 源码地址&#xff1a;https://github.com/yongzhuo/MacroGPT-Pretrain.git 踩坑 1. 数据类型fp16不太行, 很容易就Nan了, 最好是fp32, tf32, 2. 单卡如果显存不够, 可以用优化器adafactor, 3. 如果…

【Go】protobuf介绍及安装

目录 一、Protobuf介绍 1.Protobuf用来做什么 2. Protobuf的序列化与反序列化 3. Protobuf的优点和缺点 4. RPC介绍 <1>文档规范 <2>消息编码 <3>传输协议 <4>传输性能 <5>传输形式 <6>浏览器的支持度 <7>消息的可读性和…

graphics.h安装后依旧报错

问题解决一&#xff1a; 我在网上找了很多&#xff0c;都说找到graphics.h这个文件&#xff0c;放到include这个目录下&#xff0c;我照做了&#xff0c;然后 当我进行编译时&#xff0c;自动跳到graphics.h这个文件并出现一堆报错 问题解决二&#xff1a; 看一下这两个文件是…

Windows11亮度调节滑块消失不见,如何解决

电脑亮度调节滑块消失&#xff0c;键盘F6&#xff0c;F7亮度调节失效&#xff0c;系统-屏幕-亮度和颜色-亮度调节消失不见 1.首先winR ,输入regedit打开注册表编辑器 2.在注册表编辑器中依次点击(红橙黄绿青蓝紫) “计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Cl…

CFS三层靶机内网渗透

CFS三层靶机内网渗透 一、靶场搭建1.基础参数信息2.靶场搭建2.1网卡配置2.2Target1配置2.2.1 网卡配置2.2.2 Target1 BT配置 2.3Target2配置2.3.1 网卡配置2.3.2 Target2 BT配置 2.4Target3配置 二、内网渗透Target11.1信息收集1.1.1IP收集1.1.2端口收集1.1.3目录收集 1.2 webs…

CentOS最小化安装后怎么转图形界面/可视化桌面?

文章目录 1、命令行和图形界面切换方式一方式二 2、最小化安装转桌面1-设置网络2-测试网络3-更新文件4-安装图形5-查看默认6-设置默认 界面效果参考视频 1、命令行和图形界面切换 如果安装的是最小化&#xff0c;那么init 5 (进入图像化桌面)命令是无效的 方式一 1.如果在命…

【计算机网络】15、NAT、NAPT 网络地址转换、打洞

文章目录 一、概念二、分类&#xff08;主要是传统 NAT&#xff09;2.1 基本 NAT2.2 NAPT 三、访问NAT下的内网设备的方式3.1 多拨3.2 端口转发、DMZ3.3 UPnP IGD、NAT-PMP3.4 服务器中转&#xff1a;frp 内网穿透3.4.1 NAT 打洞3.4.2 NAT 类型与打洞成功率3.4.2.1 完全圆锥形 …

基于hadoop下的hbase安装

简介 HBase是一个分布式的、面向列的开源数据库&#xff0c;该技术来源于Fay Chang所撰写的Google论文“Bigtable&#xff1a;一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统&#xff08;File System&#xff09;所提供的分布式数据存储一样&#xff0c;…

nodejs+vue+ElementUi酒店餐饮客房点餐管理系统

系统非功能需求&#xff0c;只能是为了满足客户需求之外的非功能性要求。系统需要具有数据完整性验证的功能&#xff0c;对界面上非法的数据和不完整的数据进行提示&#xff0c;不能直接保存到数据库中&#xff0c;造成不完整性因素。运行软件:vscode 前端nodejsvueElementUi 语…

VSCode 开发C/C++实用插件分享——codegeex

VSCode 开发C/C实用插件分享——codegeex 一、codegeex 一、codegeex CodeGeeX 智能编程助手是一款编程插件&#xff0c;CodeGeeX支持多种主流IDE&#xff0c;如VS Code、IntelliJ IDEA、PyCharm、Vim等&#xff0c;同时&#xff0c;支持Python、Java、C/C、JavaScript、Go等多…

LeetCode 2477. 到达首都的最少油耗:深度优先搜索(DFS)

【LetMeFly】2477.到达首都的最少油耗&#xff1a;深度优先搜索(DFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-fuel-cost-to-report-to-the-capital/ 给你一棵 n 个节点的树&#xff08;一个无向、连通、无环图&#xff09;&#xff0c;每个节点表示一…

Doris 集成 ElasticSearch

Doris-On-ES将Doris的分布式查询规划能力和ES(Elasticsearch)的全文检索能力相结合,提供更完善的OLAP分析场景解决方案: (1)ES中的多index分布式Join查询 (2)Doris和ES中的表联合查询,更复杂的全文检索过滤 1 原理 (1)创建ES外表后,FE会请求建表指定的主机,获取所有…

Azure Machine Learning - 使用 Azure OpenAI 服务生成文本

使用 Azure OpenAI 服务生成文本 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理专业人士&…

一文读懂中间件

前言&#xff1a;在程序猿的日常工作中&#xff0c; 经常会提到中间件&#xff0c;然而大家对中间件的理解并不一致&#xff0c;导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品&#xff0c;在不同文献中有着许多不同的中间件定义&#xff0c;包括操…

Linux--初识和基本的指令(3)

目录 1.前言 1.指令 1.1 cat指令 1.2 echo指令 1.3 more 指令 1.4 less指令 1.5 什么时候使用less和more 1.6 head指令 1.7 tail指令 1.8 wc指令 1.9 与时间相关的指令 1.9.1 date指令 1.9.2 cal指令 1.10 16.find指令&#xff1a;&#xff08;灰常重要&#x…

RPG项目01_脚本代码

基于“RPG项目01_场景及人物动画管理器”&#xff0c;我们创建一个XML文档 在资源文件夹下创建一个文件夹&#xff0c; 命名为Xml 将Xnl文档拖拽至文件夹中&#xff0c; 再在文件夹的Manager下新建脚本LoadManager 写代码&#xff1a; using System.Collections; using System…

7、Qt延时的使用

一、说明 平时用到两种延时方式QThread::sleep()和QTimer::singleShot() 1、QThread::sleep() QThread类中如下三个静态函数&#xff1a; QThread::sleep(n); //延迟n秒 QThread::msleep(n); //延迟n毫秒 QThread::usleep(n); //延迟n微妙 这种方式使用简单&#xff0c;但是会阻…

四.多表查询

多表查询 1.一个案例引发的多表连接1.1案例说明1.2 笛卡尔积&#xff08;或交叉连接&#xff09;的理解1.3案例分析与问题解决 2.多表查询分类讲解分类1&#xff1a;等值连接vs非等值连接分类2&#xff1a;自连接vs非自连接分类3&#xff1a;内连接vs外连接 3.SQL99语法实现多表…

【【FPGA 之 MicroBlaze XADC 实验】】

FPGA 之 MicroBlaze XADC 实验 Vivado IP 核提供了 XADC 软核&#xff0c;XADC 包含两个模数转换器&#xff08;ADC&#xff09;&#xff0c;一个模拟多路复用器&#xff0c;片上温度和片上电压传感器等。我们可以利用这个模块监测芯片温度和供电电压&#xff0c;也可以用来测…