概述
文章目录
- 一.字符串相关类
- 1.String类的特性
- 2.String的内存位置
- 3.String中常用的方法
- 4.字符串与字符,字节数组之间的转换
- 5.StringBuffer类
- 6.StringBuilder类
- 7.对比String、StringBuffer、StringBuilder
- 二.System系统类
- 三.时间类
- 1.常用方法
- 2.SimpleDateFormat类
- 3.将字符串转换成Date类型
- 4.Calendar类
- 四.Math类
- 五.BigInteger类和BigDecimal类
- 1.BigInterger
- 2.BigDecimal
一.字符串相关类
1.String类的特性
String 是一个final类,代表不可变的字符序列
字符串是一个常量,他们的值在创建后不可以修改
字符串的内容是一char数组的形式存储
如下:
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
/** Cache the hash code for the string */
private int hash; // Default to 0
/** use serialVersionUID from JDK 1.0.2 for interoperability */
2.String的内存位置
JDK1.6及以前,常量池在方法区,这时的方法区也叫做永久代;
JDK1.7的时候,方法区合并到了堆内存中,这时的常量池也可以说是在堆内存中;
JDK1.8及以后,方法区又从堆内存中剥离出来了,但实现方式与之前的永久代不同,这时的方法区被叫做元空间,常量池就存储在元空间。
当以字面量形式创建字符串的时候,该字符串存储在方法区中的常量池中
String str1 = "hello";
当以对象方式创建的时候,该字符串存储在堆内存中
String str2 = new String();
3.String中常用的方法
以下个人感觉常用的都加粗了
序号 | 方法名 | 作用 |
---|---|---|
1 | int length() | 返回字符串的长度 |
2 | char charAt(int index) | 返回某索引处的字符 |
3 | boolean isEmpty() | 判断是否是空字符串 |
4 | String toLowerCase() | 将String中所有字符转换成小写 |
5 | String toUpperCase() | 将String中所有字符转换为大写 |
6 | String trim() | 去掉开头和结尾空格 |
7 | boolean equals(Object obj) | 比较字符串的内容是否相同 |
8 | boolean equalsIgnoreCase(String str) | 忽略大小写比较字符串内容 |
9 | String concat(String str) | 将指定字符串连接到此字符串的结尾,等价于"+" |
10 | int compareTo(String str) | 比较两个字符串的大小 |
11 | String substring(int beginIndex) | 返回一个新的字符串, 它是此字符串的从beginIndex开始截取到最后的一个子字符串 |
12 | String substring(int beginIndex, int endIndex) | 返回一个新字符串,它是此字 符串从beginIndex开始截取到endIndex(不包含)的一个子字符串 |
13 | boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结束 |
14 | boolean startsWith(String prefix) | 测试此字符串是否以指定的前缀开始 |
15 | boolean startsWith(String prefix, int toffset) | 测试此字符串从指定索引开始的子字符串是否以指定前缀开始 |
16 | boolean contains(CharSequence s) | 当且仅当此字符串包含指定的 char 值序列 时,返回 true |
17 | int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的索引 |
18 | int indexOf(String str, int fromIndex) | 返回指定子字符串在此字符串中第一次出 现处的索引,从指定的索引开始 |
19 | int lastIndexOf(String str) | 返回指定子字符串在此字符串中最右边出现处的索引 |
20 | int lastIndexOf(String str, int fromIndex) | 返回指定子字符串在此字符串中最后 一次出现处的索引,从指定的索引开始反向搜索 |
21 | String replace(char oldChar, char newChar) | 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的 |
22 | String replace(CharSequence target, CharSequence replacement) | 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串 |
23 | String replaceAll(String regex, String replacement) | 使 用 给 定 的replacement 替换此字符串所有匹配给定的正则表达式的子字符串 |
24 | String replaceFirst(String regex, String replacement) | 使用给定的replacement 替换此字符串匹配给定的正则表达式的第一个子字符串 |
25 | boolean matches(String regex) | 告知此字符串是否匹配给定的正则表达式 |
26 | String[] split(String regex) | 根据给定正则表达式的匹配拆分此字符串 |
27 | String[] split(String regex, int limit) | 根据匹配给定的正则表达式来拆分此 字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中 |
4.字符串与字符,字节数组之间的转换
1.字符串转字符数组
public char[] toCharArray() 将字符串的全部字符放在一个字符数组
2.字符串转字节数组
public byte[] getBytes() 使用平台的默认字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中
public byte[] getBytes(String charset) 使用指定字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中
3.字符数组转字符串
直接使用String类的构造方法String(char[] c)
4.字节数组转字符串
String(byte[] b)使用平台默认的字符集将字节数组转换成字符串
String(byte[] b,String charset)使用指定字符集将字节数组转换成字符串
5.StringBuffer类
java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符 串内容进行增删,此时不会产生新的对象。很多方法与String相同。作为参数传递时,方法内部可以改变值。
常用方法:
StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接
StringBuffer delete(int start,int end):删除指定位置的内容
StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str
StringBuffer insert(int offset, xxx):在指定位置插入xxx StringBuffer reverse() :把当前字符序列逆转
public int indexOf(String str)
public String substring(int start,int end)
public int length()
public char charAt(int n )
public void setCharAt(int n ,char ch)
StringBuffer类对象的创建:
StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器:
StringBuffer():初始容量为16的字符串缓冲区
StringBuffer(int size):构造指定容量的字符串缓冲区
StringBuffer(String str):将内容初始化为指定字符串内容
6.StringBuilder类
StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且 提供相关功能的方法也一样
7.对比String、StringBuffer、StringBuilder
String(JDK1.0):不可变字符序列
StringBuffer(JDK1.0):可变字符序列、线程安全、效率低
StringBuilder(JDK 5.0):可变字符序列、线程不安全、效率高
注意:作为参数传递的话,方法内部String不会改变其值,StringBuffer和StringBuilder 会改变其值。
二.System系统类
System类提供的public static long currentTimeMillis()用来返回当前时 间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适于计算时间差。
-
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包。
-
由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。
-
System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。
-
native long currentTimeMillis():
该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时
间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。 -
void exit(int status):
该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表
异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等
三.时间类
1.常用方法
方法 | 作用 |
---|---|
long getTime() | 返回自 1970 年 1 月 1 日的毫秒数 |
String toString() | 将Date对象转换为字符串 |
2.SimpleDateFormat类
该类用来格式化日期
例子:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(new Date()));
该类会按照构造方法中传入的格式来格式化Date对象
其中的占位符如下:
y 年
M 年中的月份
D 年中的天数
d 月份中的天数
H 一天中的小时数(0-23)
h am/pm 中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
3.将字符串转换成Date类型
String date = "2021年06月25日";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date test = sdf.parse(date);
System.out.println(test);
4.Calendar类
1、Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。
2、获取Calendar实例的方法
使用Calendar.getInstance()方法
调用它的子类GregorianCalendar的构造器。
3、一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想 要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、 MINUTE、SECOND
public void set(int field,int value)
public void add(int field,int amount)
public final Date getTime()
public final void setTime(Date date)
4、注意:
获取月份时:一月是0,二月是1,以此类推,12月是11
获取星期时:周日是1,周二是2 , 。。。。周六是7
四.Math类
方法 | 作用 |
---|---|
abs | 绝对值 |
acos,asin,atan,cos,sin,tan | 三角函数 |
sqrt | 平方根 |
pow(double a,doble b) | a的b次幂 |
log | 自然对数 |
exp | e为底指数 |
max(double a,double b) | 获取最大值 |
min(double a,double b) | 获取最小值 |
random() | 返回0.0到1.0的随机数 |
long round(double a) | double型数据a转换为long型(四舍五入) |
toDegrees(double angrad) | 弧度—>角度 |
toRadians(double angdeg) | 角度—>弧度 |
五.BigInteger类和BigDecimal类
1.BigInterger
1、概述
Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。
java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供
所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。
2、构造器
BigInteger(String val):根据字符串构建BigInteger对象
3、常用方法
public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。
BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger
BigInteger subtract(BigInteger val) :返回其值为 (this - val) 的 BigInteger
BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger
BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数 相除只保留整数部分。
BigInteger remainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。
BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。
BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。
2.BigDecimal
1.概述
一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中, 要求数字精度比较高,故用到java.math.BigDecimal类。
BigDecimal类支持不可变的、任意精度的有符号十进制定点数。
2.构造器
public BigDecimal(double val)
public BigDecimal(String val)
3.常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
al)
public BigDecimal(String val)
3.常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
最后
以上就是落寞早晨为你收集整理的javaSE-java常用API一.字符串相关类二.System系统类三.时间类四.Math类五.BigInteger类和BigDecimal类的全部内容,希望文章能够帮你解决javaSE-java常用API一.字符串相关类二.System系统类三.时间类四.Math类五.BigInteger类和BigDecimal类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复