Java学习概论第十五节

四、核心类

4、字符串类

(2) StringBuffer类
• StringBuffer字符缓冲区类是一种线程安全的可变字符序列,常用的方法
如下:
方法 功能描述
StringBuffer()
构造一个不带字符的字符串缓冲区,初始容量为16个字符
StringBuffer(intcapacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区
StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
append(String str)
在字符串末尾追加一个字符串
char charAt(int index)
返回指定下标位置的字符
int capacity()
返回字符串缓冲区容量
StringBuffer delete(intstart, int end)
删除指定开始下标到结束下标之间的子字符串

方法 功能描述
StringBuffer insert(int offset, String str) 在指定位置插入一个字符串,该方法提供多种参数的重载方法
int lastIndexOf(String str) 返回最后出现指定字符串的下标
setCharAt(int index, char ch) 设置指定下标的字符
setLength(intnewLength) 设置长度
int length() 返回字符串的长度
StringBuffer replace(int start, int end, String str) 在指定开始下标和结束下标之间内容替换成指定子字符串
StringBuffer reverse() 反转字符串序列
String subString(intbeg) 获取从beg位置开始到结束的子字符串
String subString(intbeg,int end) 获取从beg位置开始到end位置的子字符串
String toString() 返回当前缓冲区中的字符串

(3)StringBuilder类
• StringBuilder字符串生成器类与StringBuffer类似,也是创建可变的字符
串序列,只不过没有线程安全控制,常用的方法如下:
方法 功能描述
StringBuilder()
构造一个不带字符的字符串生成器,初始容量为16个字符
StringBuilder(intcapacity)
构造一个不带字符,但具有指定初始容量的字符串生成器
StringBuilder(String str)
构造一个字符串生成器,并将其内容初始化为指定的字符串内容
append(String str) 在字符串末尾追加一个字符串
char charAt(int index) 返回指定下标位置的字符
int capacity() 返回字符串生成器容量
StringBuilder delete(intstart, int end)
删除指定开始下标到结束下标之间的子字符串

方法 功能描述
StringBuilder insert(int offset, String str)
在指定位置插入一个字符串,该方法提供多种参数的重 载方法 int lastIndexOf(String str) 返回最后出现指定字符串的下标
setCharAt(int index, char ch) 设置指定下标的字符
setLength(intnewLength) 设置长度
int length() 返回字符串的长度 StringBuilder replace(int start, int end, String str) 在指定开始下标和结束下标之间内容替换成指定子字符 串 StringBuilder reverse() 反转字符串序列
String subString(intbeg) 获取从beg位置开始到结束的子字符串
String subString(intbeg,int end)
获取从beg位置开始到end位置的子字符串
String toString() 返回当前缓冲区中的字符串

(4)StringTokenizer类
• StringTokenizer类在java.util包中,有两个常用的构造方法:
• StringTokenizer(String s):为字符串s构造一个分析器。使用默认的分隔标记, 即空格符(若干个空格被看做一个空格)、换行符、回车符、Tab符、进纸符。
• StringTokenizer(String s, String delim):为字符串s构造一个分析器。参数 dilim中的字符被作为分隔标记 。
• StringTokenizer对象称作一个字符串分析器可以使用下列方法:
• nextToken():逐个获取字符串中的语言符号(单词),字符串分析器中的负责计 数的变量的值就自动减一 。
• hasMoreTokens():只要字符串中还有语言符号,即计数变量的值大于0,该方法就 返回true,否则返回false。
• countTokens():得到分析器中计数变量的值。

5、Scanner类

Scanner扫描器类在java.util包中,可以获取用户从键盘输入的不同数据,以完成数据的输入操作,同时也可以对输入的数据进行验证,常用的方法如下:
方法 功能描述
Scanner(File source) 构造一个从指定文件进行扫描的Scanner
Scanner(InputStream source) 构造一个从指定的输入流进行扫描的Scanner
boolean hasNext(Patternpattern) 判断输入的数据是否符合指定的正则标准
boolean hasNextInt() 判断输入的是否是整数
boolean hasNextFloat() 判断输入的是否是单精度浮点数
String next() 接收键盘输入的内容,并以字符串形式返回

方法 功能描述
String next(Patternpattern) 接收键盘输入的内容,并进行正则验证
int nextInt() 接收键盘输入的整数
float nextFloat() 接收键盘输入的单精度浮点数
Scanner useDelimiter(Stringpattern) 设置读取的分隔符

6、Math类

Math类包含常用的执行基本数学运算的方法,如初等指数、对数、平方根和三角函数等。Math类提供的方法都是静态的,可以直接调用,无需实例化。常用的方法如下:
方法 功能描述
abs(double a) 求绝对值
ceil(double a) 得到不小于某数的最小整数
floor(double a) 得到不大于某数的最大整数
round(double a) 同上,返回int型或者long型(上一个函数返回double型)
max(double a, double b) 求两数中最大
min(double a, doubleb) 求两数中最小

方法 功能描述
sin(double a) 求正弦
tan(double a) 求正切
cos(double a) 求余弦
sqrt(double a) 求平方根
pow(double a, double b) 第一个参数的第二个参数次幂的值
random() 返回在0.0和1.0之间的数,大于等于0.0,小于1.0

• Math类除了提供大量的静态方法之外,还提供了两个静态常量:PI和E,正如其名字所暗示的,分别表示 和e的值。

7、 Date类

• Date类用来表示日期和时间,该时间是一个长整型(long),精确到毫秒。常用的方法如下:
方法 功能描述
Date()
默认构造方法,创建一个Date对象并以当前系统时间来初始化该对象
Date(long date)
构造方法,以指定的long值初始化一个Date对象,该long值是自1970年1月1日 00:00:00 GMT时间以来的毫秒数
boolean after(Date when)
判断日期是否在指定日期之后,如果是则返回ture,否则返回false
boolean before(Date when)
判断日期是否在指定日期之前,如果是则返回ture,否则返回false
int compareTo(Date date)
与指定日期进行比较,如果相等则返回0,如果在指定日期之前则返回小于0的数,如 果在指定日期之后则返回大于0的数
String toString()
将日期转换成字符串,字符串格式是:dow mon dd hh:mm:ss zzz yyyy其中dow是一周中 的某一天(Sun,Mon,Tue,Wed,Thu,Fri,Sat);mon是月份;dd是天;hh是小时; mm是分钟;ss是秒;zzz是时间标准的缩写,如CST等;yyyy是年。例如“Mon Nov 03 20:20:07 CST 2014”

Calendar对象:
1 Calendar类在java.util包中。使用Calendar类的static方法 getInstance()可以初始化一个日历对象,如:

Calendar calendar= Calendar.getInstance();

2 calendar对象可以调用方法:

public final void set(int year,int month,int date)
public final void set(int year,int month,int date,int hour,int minute)
public final void set(int year,int month, int date, int hour, int minute,int second)

• 将日历翻到任何一个时间
3 calendar对象常用方法
public int get(int field) :可以获取有关年份,月份,小时,星期等信息
例如

calendar.get(Calendar.MONTH);
calendar.get((DAY_OF_WEEK);

public long getTimeInMillis() :可以将时间表示为毫秒。
日期格式化:
• 使用java.util包中的DateFormat的子类SimpleDateFormat类来实现日期的格式化。
• SimpleDateFormat有一个常用构造方法:
• public SimpleDateFormat(String pattern);
• 该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:
• Public String format(Date date)方法格式化时间对象date。
• pattern是由普通字符和一些称作格式符所组成的字符序列。format 方法在格式化date时,将用date中的相应的时间替换相应的格式符,简单地说,format方法返回的字符串就是把pattern中的格式符用相应时间替换后的字符序列。

五、新时间日期API

如果我们可以跟别人说:“我们在1502643933071见面,别晚了!”那么就再简单不 过了。但是我们希望时间与昼夜和四季有关,于是事情就变复杂了。JDK 1.0中包含 了一个java.util.Date类,但是它的大多数方法已经在JDK 1.1引入Calendar类之后 被弃用了。而Calendar并不比Date好多少。它们面临的问题是:
• 可变性:像日期和时间这样的类应该是不可变的。
• 偏移性:Date中的年份是从1900开始的,而月份都从0开始。
• 格式化:格式化只对Date有用,Calendar则不行。
• 此外,它们也不是线程安全的;不能处理闰秒等。
• 总结:对日期和时间的操作一直是Java程序员最痛苦的地方之一。
第三次引入的API是成功的,并且java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。
Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。新的 java.time 中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。历史悠久的 Date 类新增了 toInstant() 方法,用于把 Date 转换成新的表示形式。这些新增的本地化时间日期 API 大大简化了日期时间和本地化的管理。
• java.time – 包含值对象的基础包
• java.time.chrono – 提供对不同的日历系统的访问
• java.time.format – 格式化和解析时间和日期
• java.time.temporal – 包括底层框架和扩展特性
• java.time.zone – 包含时区支持的类
LocalDate、LocalTime、LocalDateTime
LocalDate、LocalTime、LocalDateTime 类是其中较重要的几个类,
它们的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和
时间。它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时
区相关的信息。
注:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法,也就是公历。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值