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类常用方法
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类含义类似的方法
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 类。
日期<-->字符串
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)包装类常见方法
Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型
java 类数组_Java常用类-字符串、日期类、算法及数组工具类等相关推荐
- java 数字翻译成英文_Java实现将数字日期翻译成英文单词的工具类实例
本文实例讲述了Java实现将数字日期翻译成英文单词的工具类.分享给大家供大家参考,具体如下: package com.sunyard.etp.ag.util; import java.math.Big ...
- 自己写的将数组中的“null“字符串转成null的小工具类,报java.lang.NullPointerException
起初的工具类代码: //转字符"null"为空public static void toNull(Object[] obj){if (obj!=null) {for (int i ...
- java 数字翻译成英文_Java实现数字日期翻译成英文单词的工具类案例分享
这篇文章主要介绍了Java实现将数字日期翻译成英文单词的工具类,结合完整实例形式分析了Java日期转换与字符串操作相关实现技巧,需要的朋友可以参考下 本文实例讲述了Java实现将数字日期翻译成英文单词 ...
- java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
文章目录 先看成品 前言 一.项目目录结构 一.海报制作PosterUtil.java工具类 1. 描述 2. 代码 二.测试生成海报 1. 描述 2. 直接上代码 四.其他测试 1. Test1_C ...
- JAVA高效率 (秒级) 将千万条数据导入数据库 (已封装工具类)【详解】【一看就懂】
该gif做了加速处理,便于观看~ 今天在将一个500w+条数据的文件导入至数据库时,遇到一个异常,相信做大数据应该都有遇到.500w条数据说多不多,说少也不少.既然问题出现了,那么就一定要解决. 异 ...
- 按照拼音对数组中的中文字符串排序的算法
按照拼音对数组中的中文字符串排序的算法,不是很难,这里直接放上代码,Demo去最下面找: 注:里面用到一个叫George的牛人写的中文转拼音首字母的函数pinyinFirstLetter,因为内容实在 ...
- 测试算法(性能)的工具类
记录几个测试算法性能的工具类,方便以后测试算法. Stopwatch类:可以得到算法的执行时间(单位:s,小数点后3位) 1: public class Stopwatch { 2: private ...
- java 常用类 练习_Java常用类之String类练习
1.编程. 已知字符串:"this is a test of java". 按要求执行以下操作: (1) 统计该字符串中字母s出现的次数 (2) 取出子字符串"test& ...
- java api 第一个类是_java.常用API
Scanner 使用方法 1.导包 import 包路径.类名称 import java.util.Scanner; 如果需要使用的目标类,和当前类名称位于同一个包下,则可以省略导包语句不写. 2.创 ...
最新文章
- 利用人工智能保护生物多样性
- 【云音乐】从手游APP到云音乐视频标签分类,时隔3个月再次面对多标签任务,终于摸索出了一些小经验。附自定义评估函数代码
- 前端 ---JS中的面向对象
- Java 多线程 并发编程------超全面
- 导数卷积 (NTT)
- [蓝桥杯][2019年第十届真题c/c++B组]后缀表达式(解释sum -= 2*a[i])
- Openresty+Nginx+Lua+Nginx_http_upstream_check_module 搭建
- “我爱淘”冲刺阶段Scrum站立会议3
- jquery mobile页面跳转后js不执行的问题
- webpack5+vue3搭建h5项目模板-(一)-基础配置
- bios 微星click_微星主板CLICK BIOS II BIOS设置软件
- python游戏编程实战教程_关于游戏编程的详细介绍
- 2019保定中考计算机时间安排,2019年保定中考考试时间安排,保定中考考试科目时间安排表...
- 关闭 Eureka 的自我保护机制
- android 连接本地设备,从USB连接的Android移动设备访问PC的本地主机
- git报错:fatal: 无法为 ‘https‘ 找到远程助手
- winform pdf转图片.jpg或.png(O2S.Components.PDFRender4NET)
- android点亮屏幕软件,插亮屏幕Lite
- python怎么读取excel数据-python怎么从excel中读取数据?
- Unity3d 游戏特效制作实战教程 第二部
热门文章
- 为什么redis取出来是null_[2020] Redis 最新面试题
- android studio日历小程序,android studio无法加载日历界面
- python 定义变量_python-003-变量
- JQ 全选后获取选中的值_Filecoin如何创建账户钱包并获取FIL测试币
- CentOS7使用firewalld打开关闭防火墙与端口(转载)
- 第5章 函数与函数式编程
- (转) Twisted :第十九部分 改变之前的想法
- 解决复杂多数据源报表的5种通用办法
- C和C++实务精选丛书
- 深入理解Linux内存映射机制