目录
String
- 常量对象:字符串常量对象是用双引号括起的字符序列。
- 字符串的字符使用Unicode字符编码,一个字符占两个字节
构造器
常用构造方法
String str1 = new String();
String str2 = new String(String str1);
String str3 = new String(char[] c);
String str4 = new String(char[] c,int startIndex,int count);
内存结构
特点
-
String是一个final类,代表不可变的字符序列
-
字符串是不可变的。一个字符串对象一旦被配置,其内容是不可变的
-
底层使用char[]
常用操作方法
/*常用操作方法*/
//字符串的长度
public int length()
///字符串index位置的字符
public char charAt(int index)
//判断当前String是否和anObject相等(两个字符串)
public boolean equals(Object anObject)
//同anotherString比较,(比较到不同的字符,两字符的ASCII码相减并返回)
public int compareTo(String anotherString)
//S在当前字符串中的第一次出现的位置
public int indexOf(String s)
//返回s字符串从当前字符串startpoint位置开始,首次出现的位置
public int indexOf(String s ,int startpoint)
//返回s字符串最后出现的位置
public int lastIndexOf(String s)
//返回s字符串从startpoint位置开始,最后一次出现的位置
public int lastIndexOf(String s ,int startpoint)
//判断字符串是否以prefix开始
public boolean startsWith(String prefix)
//判断字符串是否以suffix结束
public boolean endsWith(String suffix)
//判断当前字符串从firststart开始的子串与other字符串从otherstart开始,length长的字符串是否相等
public boolean regionMatches(int firstStart,String other,int otherStart ,int length)
/*
* 修改操作
*/
//获得当前字符串startpoint开始至结尾得到子串
public String substring(int startpoint)
//获得当前字符串自start~end得子串
public String substring(int start,int end)
//将字符串中的oldChar替换为newChar
pubic String replace(char oldChar,char newChar)
//将字符串中的子串old替换为new
public String replaceAll(String old,String new)
//去除字符串中的首尾处空格
public String trim()
//连接当前字符串+str
public String concat(String str)
//将当前字符串以regex分割成多个子串并返回一个字符串数组
public String[] split(String regex) : 根据给定正则表达式的匹配拆分此字符串。
字符串与基本数据的相互转化
字符串转换为基本数据类型
- Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型。
- 类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型。
基本数据类型转换为字符串
- 调用String类的public String valueOf(int n)可将int型转换为字符串
- 相应的valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(double d)、valueOf(boolean b)可由参数的相应类到字符串的转换
字符串与字符数组
- String 类的构造方法:
//分别用字符数组中的全部字符和部分字符创建字符串对象
String(char[])
String(char[] c,int offset,int length)
- String类提供了将字符串存放到数组中的方法:
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
- 将字符串中的全部字符存放在一个字符数组中的方法
public char[] toCharArray()
字符串与字节数组
String(byte[])
//用指定的字节数组构造一个字符串对象。
String(byte[],int offset,int length)
//用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。
public byte[] getBytes()
//方法使用平台默认的字符编码,将当前字符串转化为一个字节数组。
public byte[] getBytes(String charsetName)
//使用参数指定字符编码,将当前字符串转化为一个字节数组。
StringBuffer
- java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删
- 很多方法与String相同,但StingBuffer是可变长度的。
- StringBuffer是一个容器。
构造方法
StringBuffer()
//初始容量为16的字符串缓冲区
StringBuffer(int size)
//构造指定容量的字符串缓冲区
StringBuffer(String str)
//将内容初始化为指定字符串内容
常用方法
/*常用操作*/
//添加各种数据类型的数据
StringBuffer append(String s);
StringBuffer append(int n);
StringBuffer append(Object o) ;
StringBuffer append(char n);
StringBuffer append(long n);
StringBuffer append(boolean n);
//在当前StringBuffer对象中的index位置插入str
StringBuffer insert(int index, String str);
//反转当前字符串
public StringBuffer reverse();
//删除当前字符串的startIndex~endIndex位置的子串
StringBuffer delete(int startIndex, int endIndex);
//返回当前字符串的n位置处的字符
public char charAt(int n );
//将n位置处的字符修改为ch
public void setCharAt(int n ,char ch);
//在当前字符串的startIndex~endIndex修改为str
StringBuffer replace( int startIndex ,int endIndex, String str)
//返回当前字符串中str子串的第一次出现的位置
public int indexOf(String str);
//获取start~end处的子串
public String substring(int start,int end);
//获取字符串的长度
public int length();
StingBuilder
- StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样
- String:不可变字符序列
- StringBuffer:可变字符序列、效率低、线程安全
- StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全
- String使用陷阱:
string s="a"; //创建了一个字符串
s=s+"b";
/*实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。
*/
日期类
java.lang.System类
- System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。【此方法适于计算时间差】
- 计算世界时间的主要标准有:
- UTC(Universal Time Coordinated)
- GMT(Greenwich Mean Time)
- CST(Central Standard Time)
java.util.Date类
表示特定的瞬间,精确到毫秒
构造方法
Date()
//使用Date类的无参数构造方法创建的对象可以获取本地当前时间
Date(long date)
/*常用方法*/
getTime()
//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
toString()
//把此 Date 对象转换为以下形式的 String:
//dow mon dd hh:mm:ss zzz yyyy
//其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。
java.text.Simp leDateFormat
Date类的API不易于国际化,大部分被废弃了,java.text.Simp leDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
-
它允许进行格式化(日期 --> 文本)、解析(文本 --> 日期)
-
格式化
SimpleDateFormat()
//默认的模式和语言环境创建对象
public SimpleDateFormat(String pattern)
//该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用
public String format(Date date)
//方法格式化时间对象date
- 解析
public Date parse(String source)
//从给定字符串的开始解析文本,以生成一个日期。
java.util.Calendar(日历)类
Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能
- 获取Calendar实例的方法
- 使用Calendar.getInstance()方法
- 调用它的子类GregorianCalendar的构造器。
- 一个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)
Math
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。
//绝对值
abs()
//三角函数
acos()
asin()
atan()
cos()
sin()
tan()
//平方根
sqrt()
//a的b次幂
pow(double a,doble b)
//自然对数
log
// e为底指数
exp
max(double a,double b)
min(double a,double b)
//返回0.0到1.0的随机数
random()
// double型数据a转换为long型(四舍五入)
long round(double a)
// 弧度—>角度
toDegrees(double angrad)
//角度—>弧度
toRadians(double angdeg)
BigInteger类
Integer类作为int的包装类,能存储的最大整型值为 -1,BigInteger类的数字范围较Integer类存储的数字范围要大得多,可以支持任意精度的整数
构造器
BigInteger(String val)
常用方法
public BigInteger abs();
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger remainder(BigInteger val)
public BigInteger pow(int exponent)
public BigInteger[] divideAndRemainder(BigInteger val)
BigDecimal
一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用java.math.BugDecimal类。(可支持任何精度的定点数)
构造器
public BigDecimal(double val)
public BigDecimal(String val)
常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
【注】
本文章属个人整理学习使用,如有不当之处望联系指正或删除。
【学习视频来源】尚硅谷http://www.atguigu.com/