java150个常用类_Java基础之常用类

一、字符串相关类

1、String类:构造字符串对象

常量对象:字符串常量对象是用双引号括起的字符序列。 例如:String s = "你好"、String s = "12.97"、String s = "boy"等。

字符串的字符使用Unicode字符编码,一个字符占两个字节。

使用构造方法创建并初始化:

String();//初始化一个对象,表示空字符序列

String(value);//利用已存在的字符串常量创建一个新的对象

String (char[] value);//利用一个字符数组创建一个字符串

String(char[] value,int offset,int count);//截取字符数组offset到count的字符创建一个非空串

String(StringBuffer buffer);//利用StringBuffer对象初始化String对象

字符串特性:

String是一个final类,代表不可变的字符序列,字符串是不可变的。一个字符串对象一旦被配置,其内容是不可变的。

字符串内存分析:

f97a9648e8b044be86b40d0d8834db44.png

字符串常用操作:

1)  charAt(下标):获取字符串指定下标位置的字符,返回char值

2)  length():返回字符串的长度,返回int值

3)  getBytes():将字符串转换为字节数组,返回byte[]值

4)  indexOf(子字符串):返回指定子字符串在源字符串中的下标,返回int值,没找到返回-1.(可以指定开始检索的位置下标)

5)  lastIndexOf():返回指定子字符串在源字符串中最后一次出现的下标

6)  isEmpty():判断字符串的length是否为0,返回Boolean值

7)  replace(旧子字符串,新字符串):用指定的新字符串替换源字符串中的旧子字符串部分,返回替换后的字符串,返回值String

8)  subString(开始下标,结束下标):截取从开始到结束下标范围的字符串,结果包含开始,不包含结束,如果不给结束下标,表示直接截取到末尾

9)  split(字符串):按照指定的字符串拆分源字符串,返回String[]数组

10) trim():用于返回去掉首尾空格的字符串

11) valueOf(其他类型数据):将指定数据转换为字符串值返回

12) toCharArray():返回将此字符串转换为一个新的字符数组

13) toString():返回此对象本身

14) toLowerCase():把字符串全部转换为小写

15) toUpperCase():把字符串全部转换为大写

16) startsWith(前缀):判断前缀是否相同

17) endsWith(后缀):判断后缀是否相同

18) compareTo():判断字符串的大小关系,参考ASSCI表

19) compareToIgnoreCase():忽略大小写判断字符串的大小关系

20) equals(字符串):比较字符串和指定字符串是否相等,返回boolean值

21) equalsIgnoreCase():忽略大小写的情况下判断内容是否相同

22) reagionMatches() :测试两个字符串区域是否相等

23)pubic String replace(char oldChar,char newChar)

24)public String replaceAll(String old,String new)

字符串与基本数据的相互转换

字符串转换为基本数据类型:

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[],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) 使用参数指定字符编码,将当前字符串转化为一个字节数组。

2、StringBuffer类与StringBuilder类

StringBuffer是一个容器。

java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。 很多方法与String相同,但StingBuffer是可变长度的。

StringBuffer类有三个构造方法:

1.StringBuffer()初始容量为16的字符串缓冲区

2.StringBuffer(int size)构造指定容量的字符串缓冲区

3.StringBuffer(String str)将内容初始化为指定字符串内容

与String的区别:

String s = new String("我喜欢学习");//长度不可变

StringBuffer buffer = new StringBuffer(“我喜欢学习”);//长度可变,调用append()方法,增加字符串长度

buffer.append("数学");

常用类:

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 insert(int index, String str)

public StringBuffer reverse()

StringBuffer delete(int startIndex, int endIndex)

public char charAt(int n )

public void setCharAt(int n ,char ch)

StringBuffer replace( int startIndex ,int endIndex, String str)

public int indexOf(String str)

public String substring(int start,int end)

public int length()

StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样

String:不可变字符序列

StringBuffer:可变字符序列、效率低、线程安全

StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全

String使用陷阱: string s="a"; //创建了一个字符串 s=s+"b"; //实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。

二、日期类

1.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)

2. 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是时间标准。

Date类的API不易于国际化,大部分被废弃了,java.text.Simp leDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。

它允许进行格式化(日期文本)、解析(文本日期)

格式化:

SimpleDateFormat() :默认的模式和语言环境创建对象

public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:

public String format(Date date):方法格式化时间对象date

解析:

public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。

3. 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)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagemain.dyh.test_utils;importorg.junit.Test;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;public classTestString {

@Testpublic voidfun1() {

Date date= newDate();

System.out.println(date);long l =System.currentTimeMillis();

System.out.println(l);

}

@Testpublic void fun2() throwsParseException {

Date date= newDate();//产生一个formater格式化的实例

SimpleDateFormat st = newSimpleDateFormat();

String f1=st.format(date);

System.out.println(f1);

SimpleDateFormat st1= new SimpleDateFormat("yy-MM-dd hh:mm:ss");

String f2=st1.format(date);

System.out.println(f2);

}

@Testpublic voidfun3(){

Calendar calendar=Calendar.getInstance();//获取时间

Date time =calendar.getTime();

System.out.println(time);

SimpleDateFormat st= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

String format=st.format(time);

System.out.println(format);//获取年

int year =calendar.get(Calendar.YEAR);

System.out.println(year);//获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值

int month = calendar.get(Calendar.MONTH)+1;

System.out.println(month);//获取日Date同DAY_OF_MONTH

int day =calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(calendar.get(Calendar.DATE));

System.out.println(day);//获取时

int hour =calendar.get(Calendar.HOUR);

System.out.println(hour);//获取分

int minute =calendar.get(Calendar.MINUTE);

System.out.println(minute);//获取秒

int second =calendar.get(Calendar.SECOND);

System.out.println(second);//星期,英语国家星期从星期日开始计算

int week =calendar.get(Calendar.DAY_OF_WEEK);

System.out.println(week);

}//一年后的今天

@Testpublic voidfun4(){

Calendar calendar=Calendar.getInstance();//同理换成下个月的今天calendar.add(Calendar.MONTH, 1);

calendar.add(Calendar.YEAR, 1);//获取年

int year =calendar.get(Calendar.YEAR);

System.out.println(year);//获取月

int month = calendar.get(Calendar.MONTH) + 1;

System.out.println(month);//获取日

int day =calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(day);

}//获取任意一个月的最后一天

@Testpublic voidfun5(){

Calendar calendar=Calendar.getInstance();//假设求6月的最后一天,月份是从0到11,所以这里设置6,其实是7月

int currentMonth = 6;//先求出7月份的第一天,实际中这里6为外部传递进来的currentMonth变量//1

calendar.set(calendar.get(Calendar.YEAR), 10, 1);//设置日期

System.out.println(calendar.getTime());

calendar.add(Calendar.DATE,-1);//七月一号的前一天//获取日

int day =calendar.get(Calendar.DAY_OF_MONTH);

System.out.println("6月份的最后一天为" + day + "号");

}//设置日期

@Testpublic voidfun6(){

Calendar calendar=Calendar.getInstance();

calendar.set(Calendar.YEAR,2000);

System.out.println("现在是" + calendar.get(Calendar.YEAR) + "年");

calendar.set(2008, 8, 8);//获取年

int year =calendar.get(Calendar.YEAR);

System.out.println(year);//获取月

int month =calendar.get(Calendar.MONTH);

System.out.println(month);//获取日

int day =calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(day);

}

}

View Code

三、Math类

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

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) 角度—>弧度

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值