java 类数组_Java常用类-字符串、日期类、算法及数组工具类等

大家好,乐字节的小乐又和大家见面了。这次要给大家讲述的是Java常用类。

主要有以下知识点:

Ø 字符串相关类(String 、StringBuffer、StringBuilder)

Ø 算法及数组工具类(Arrays)

Ø 日期类

Ø 基本数据类型包装类

Ø Math类

Ø File类

Ø 枚举类

一、 字符串相关类(String、 StringBuffer 、 StringBuilder)

java.lang.String:不可变的字符序列

java.lang.StringBuffer:可变字符序列,并且线程安全,但是效率低

StringBuilder :可变字符序列,线程 不安全,但是效率高 (一般用他!)

“xxxx”为该类的一个对象

String类的常见构造方法:

String()

创建一个空字符的String对象

String(String original)

创建一个String对象为original的拷贝

String(char[] value)

用一个字符数组创建一个String对象

String(char[] value, int offset, int count)

用一个字符数组从offset项开始的count个字符序列创建一个String对象

String(byte[] bytes)

用一个byte数组创建一个String对象

String(byte[] bytes,int offset,int length)

用一个byte数组从offset项开始的length个字符序列创建一个String对象

二、 String类常用方法

8c3687b2d4fe82bf8d7024c17a35364f.png

public static String valueOf(….)系列,可以将基本类型数据转换为字符串

例如:

public static String valueOf(double d)

public static String valueOf(int i)

….

public String[] split(String regex)

将一个字符串按照指定的分隔符进行分割,返回分割后的字符串数组。

StringBuffer类和StringBuilder类方法类似

1、字符串缓冲区类,StringBuffer

用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类,StringBuffer供我们使用。

StringBuffer和String类似,但StringBuffer可以对其字符串进行改变。

2、String和StringBuffer相互转换

String -- StringBuffer

构造方法

StringBuffer -- String

toString()方法

3、StringBuffer的构造方法

A:StringBuffer()

创建一个不包含字符序列的空的StringBuffer对象

B:StringBuffer(int size)

构造一个不带字符,但具有指定初始容量的字符串缓冲区

C:StringBuffer(String str)

创建一个StringBuffer对象,包含与String对象str相同的字符序列

4、StringBuffer的常见功能(自己补齐方法的声明和方法的解释)

A:添加功能 append()

B:删除功能 delete(int start,int end) 开始位置,结束位置(end-1)

C:替换功能

D:反转功能

E:截取功能(注意这个返回值)

F:在指定位置插入字符序列 insert(index,字符串)

5、与String类含义类似的方法

484c4305d286672bdfe50a28e97567d8.png

6、字符串的案例

A:模拟用户登录

B:字符串遍历

C:统计字符串中大写,小写及数字字符的个数

D:把字符串的首字母转成大写,其他小写

F:字符串反转

G:统计大串中小串出现的次数

H: 判断一个字符串是否对称

三、 算法及Arrays工具类

1、排序

A:冒泡排序

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

public static void bubbleSort(int[] arr) {for(int x=0; x<arr.length-1; x++) {for(int y=0; y<arr.length-1-x; y++) {if(arr[y] > arr[y+1]) {int temp = arr[y];arr[y] = arr[y+1];arr[y+1] = temp;}}
}
}

B:选择排序

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

public static void selectSort(int[] arr) {for(int x=0; x<arr.length-1; x++) {for(int y=x+1; y<arr.length; y++) {if(arr[y] < arr[x]) {int temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}}
}

2、查找

A:基本查找

针对数组无序的情况

public static int getIndex(int[] arr,int value) {int index = -1;for(int x=0; x<arr.length; x++) {if(arr[x] == value) {index = x;break;}}return index;
}

B:二分查找(折半查找)

针对数组有序的情况(千万要先排序,在查找)

public static int binarySearch(int[] arr,int value) {int min = 0;int max = arr.length-1;int mid = (min+max)/2;while(arr[mid] != value) {if(arr[mid] > value) {max = mid - 1;}else if(arr[mid] < value) {min = mid + 1;}if(min > max) {return -1;}mid = (min+max)/2;}return mid;
}

3、Arrays工具类

A:是针对数组进行操作的工具类。包括排序和查找等功能。

B:要掌握的方法(自己补齐方法)

把数组转成字符串:

排序:

二分查找:

4、把字符串中的字符进行排序

举例:

"edacbgf" String []

得到结果

"abcdefg"

四、 时间处理相关类

1、java.util.Date

Date() 当前时间毫秒数

Date(long date) 指定日期毫秒数

⑴与字符串转换

toString()

⑵日期比较

①equals()

②compareTo(Date anotherDate)

③after(Date when) before(Date when)

⑶与数字 Long 转换(重要)

getTime() ->获取数字

setTime() -->变成另外一个日期

2 、 DateFormat 类和 SimpleDateFormat 类

作用:把时间对象转化成 指定格式的字符串。反之,把 指定格式的字符串转化成时间对象。

DateFormat 是一个抽象类。一般使用 SimpleDateFormat 类。

bbfb3678f150dcb9b2ad2052e0cae026.png

日期<-->字符串

DateFormat

1、format(Date date) -->日期格式化为字符串

2、parse(符合格式字符串) -->字符串 转为日期

子类

SimpleDateFormat(String pattern)

模板:区分大小写

* y:年

* M:月

* d:日

* H:24 进制 [0,23]

* k:24 进制 [1,24]

* h:12 进制 [0,11]

* K:12 进制 [1,12]

* m:分钟

* s:秒

* S:毫秒

五、 基本数据类型的包装类

(1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

(2)Integer的构造方法

A:Integer i = new Integer(100);

B:Integer i = new Integer("100");

注意:这里的字符串必须是由数字字符组成

(3)String和int的相互转换

A:String -- int

Integer.parseInt("100");

B:int -- String

String.valueOf(100);

(4)JDK5的新特性

自动装箱 基本类型--引用类型

自动拆箱 引用类型--基本类型

把下面的这个代码理解即可:

Integer i = 100;

在赋值之前,先进行了自动装箱

Integer i =Integer.valueOf(100);

i += 200;

计算之前,先进行了自动拆箱:i.intValue(),将对象转换为int基本数据类型

(5)包装类常见方法

26e99bcad37a8677295401b1844377d4.png

Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型

5acd2d68e76b82c5366df9912d4c6d2f.png

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

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

相关文章

IOS之Foundation之探究学习Swift实用基础整理一

2019独角兽企业重金招聘Python工程师标准>>> 1 import Foundation2 3 //加载网络数据&#xff0c;查找数据的字符串4 let dataurl "http://api.k780.com:88/?appweather.city&&appkey10003&signb59bc3ef6191eb9f747dd4e83c99f2a4&formatjson…

sql 时间 没有日期_SQL-补充:日期和时间戳互转

补充&#xff1a;日期和时间戳互转1. 日期转时间戳-- 转十位select UNIX_TIMESTAMP(2018-12-25 12:25:00);结果&#xff1a;1545711900-- 转十三位SELECT REPLACE(unix_timestamp(current_timestamp(3)),.,);结果&#xff1a;15457119000212. 时间戳转日期 FROM_UNIXTIME(unix_…

vue那个生命周期函数操作dom_vue生命周期实例小结

本文实例分析了vue生命周期。分享给大家供大家参考&#xff0c;具体如下&#xff1a;每个Vue实例都存在完整的生命周期&#xff0c;经历从创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程。如下图所示vue的完整生命周期可分为三个阶段&#xff1a;初…

不求很多,够用就好

Hi&#xff0c;我是一名在校学生&#xff0c;目前大三&#xff0c;希望在前端方向上发展&#xff0c;最好以后是一个真全栈 曾经也会搜索一堆的工具&#xff0c;后面发现 只有正确的使用合理数量的工具&#xff0c;才能加快开发步伐 下面简单推荐几个实用工具&#xff0c;强大并…

java连接mysql2008_在Java中如何使用jdbc连接Sql2008数据库(转)

我们在javaEE的开发中&#xff0c;肯定是要用到数据库的&#xff0c;那么在javaEE的开发中&#xff0c;是如何使用代码实现和SQL2008的连接的呢&#xff1f;在这一篇文章中&#xff0c;我将讲解如何最简单的使用jdbc进行SQL2008的数据库的连接的。首先我们看下我们的数据库的一…

java搭建博客系统_Spring boot 搭建个人博客系统(一)——整体思路

Spring boot 搭建个人博客系统(一)——整体思路一直想用Spring boot 搭建一个属于自己的博客系统&#xff0c;刚好前段时间学习了叶神的牛客项目课受益匪浅&#xff0c;乘热打铁也主要是学习&#xff0c;好让自己熟悉这类项目开发的基本流程。0. 思路博客的基本作用就是博主写文…

在SQL Server中为什么不建议使用Not In子查询

原文:在SQL Server中为什么不建议使用Not In子查询在SQL Server中&#xff0c;子查询可以分为相关子查询和无关子查询&#xff0c;对于无关子查询来说&#xff0c;Not In子句比较常见&#xff0c;但Not In潜在会带来下面两种问题&#xff1a; 结果不准确 查询性能低下 下面我们…

结组项目-四则运算3

团队成员&#xff1a;苗堃&#xff08;http://www.cnblogs.com/brucekun/p/5294368.html&#xff09;、罗毅&#xff08;http://www.cnblogs.com/ly199553/p/5294779.html&#xff09; PSP总结http://www.cnblogs.com/ly199553/p/5295545.html 本次软件工程老师提出了新任务&a…

jsp 嵌入java_关于JSP里的Java语句嵌入问题

是这样的,我用的是Intellij 导入了一个MyEclipse的包(该包已部署在服务器上&#xff0c;所以是没有大错误的)。然后在一个jsp文件出现了个问题&#xff1a;莫名奇妙地println变成了红色&#xff0c;执行的时候就直接抛出异常了。今天刚接触JavaWeb不太懂&#xff0c;到底是怎么…

【three.js】库

2019独角兽企业重金招聘Python工程师标准>>> three.js 一个轻量级的webgl库&#xff0c;但是十分强大。 下载地址https://github.com/mrdoob/three.js OrbitControls.js 控制视口的平移、缩放、旋转。 GridHelper.js 生成视口的网格。 转载于:https://my.oschina.…

域名发散--前端优化(三)

话说天下大势&#xff0c;分久必合&#xff0c;合久必分其实域名也是一样&#xff0c;分分合合&#xff0c; 不管是域名收敛还是域名发散&#xff0c;都有着自己独特的应用场景。目前, 在webs top 30,000 URLS 里面&#xff0c; 平均每个域名承担了50个资源的请求&#xff0c;所…

java就_GitHub - IammyselfYBX/This_is_how_Java_should_be_learned: 《Java就应该这样学》

Java就该这么学说明这里使用 centos7 的openjdk&#xff0c;不是Oracle的JDKyum search java|grep jdkyum install java-1.8.0-openjdk#set Java environmentexport JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64export CALSSPATH.:$JAVA_HOME/jre/l…

win7变成xp风格了怎么改回_XP退役了,如何把Win7变成XP风格

展开全部方法如下&#xff1a;【步骤62616964757a686964616fe78988e69d8331333365653265①】&#xff1a;在电脑桌面空白处&#xff0c;点击鼠标右键&#xff0c;子菜单选择点击“个性化”【步骤②】&#xff1a;直接选择“基本和高对比主题”里的“Windows经典”模式整理风格发…

org.apache.catalina.LifecycleException: Failed to

2019独角兽企业重金招聘Python工程师标准>>> 文章原创地址&#xff1a;org.apache.catalina.LifecycleException: Failed to start component今天来了个新同事&#xff0c;让他先熟悉一下我们的工程项目&#xff0c;从svn下载下来以后&#xff0c;配置完成却怎么都无…

objective-C CollectionView 加深(添加注册头部View)

2019独角兽企业重金招聘Python工程师标准>>> #pragma marc 添加Collection -(void)addConllectionView{//collection的布局方案UICollectionViewFlowLayout *collectionViewLayout[[UICollectionViewFlowLayout alloc]init];//设置位置大小以及布局方案_myCollectio…

Javascript中Base64编码解码的使用实例

Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码&#xff0c;分别是window.btoa()函数和window.atob()函数。 1 var encodedStr window.btoa(“Hello world”); //字符串编码 2 var decodedStr window.atob(encodedStr); //字符串解码看下面的实例代…

mysql安装前的系统准备工作(转)

一、系统环境总结&#xff1a; 二、安装yum源&#xff1a; 1、安装磁盘yum源&#xff1a; 一、安装xfs文件系统&#xff1a;1、配置yum源&#xff1a;&#xff08;光盘&#xff09;vi /etc/yum.repos.d/yum.repo[Server]nameserverbaseurlfile:///tmp/cddir/Server/enabled1gpg…

layui常用的表单标签_Layui常用组件:表格(table)

快速使用添加删除编辑查看编辑删除layui.use([table], function () {table.render({elem: #demo,url: url//表格数据接口,toolbar: #toolbarDemo //开启头部工具栏&#xff0c;并为其绑定左侧模板,page:true//开启分页,loading:true//显示加载条,cols: [[{type: checkbox, fixe…

理解HTTP幂等性

2019独角兽企业重金招聘Python工程师标准>>> 理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中&#xff0c;我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢&#xff…

控件UI性能调优 -- SizeChanged不是万能的

简介 我们在之前的“UWP控件开发——用NuGet包装自己的控件“一文中曾提到XAML的布局系统 和平时使用上的一些问题&#xff08;重写Measure/Arrange还是使用SizeChanged&#xff1f;&#xff09;&#xff0c;这篇博文就来为大家简单地描述一下XAML布局系统的行为&#xff0c;并…