华清远见-重庆中心-JAVA高级阶段技术总结

如何创建字符串对象

方式一:通过赋值创建

 String name = "张三";

方式二:通过构造方法创建

常用构造方法 作用
String() 创建一个空白字符串对象
String(String str) 创建一个指定字符串的字符串对象
String(char[] list) 创建一个指定数组的字符串对象
String(byte[] byte,String charsetName) 按指定的编码格式创建一个指定字节数组的字符串对象

字符串String类中的常用方法

方法名 返回值 作用
length() int 得到字符串的长度
toLowerCase() String 将字符串转换为小写
toUpperCase() String 将字符串转换成大写
trim() String 去除字符串首尾的所有空格
isEmpty() boolean 判断字符串是否为空白字符串
getBytes() byte[] 将字符串转换成字节数组
toCharArray() char[] 将字符串装换成字符数组
equalslgnoreCass(String) boolean 忽略大小写,判断两个字符是否相等
charAt(int index) char 得到字符串指定索引上的字符
equals(String str) boolean 判断两个字符是否相同
IndexOf(String str) int 得到子字符串第一次出现的索引位置,不存在则返回-1
lastIndexOf(String str) int 得到子字符串最后一次出现的索引位置,不存在则返回-1
contains(字符序列) boolean 判断某个子字符串是否在原字符串中出现
concatenate(String str) String 将参数字符串拼接到原字符串末尾
startWith() boolean 判断字符串是否以指定字符串开头
endWith() boolean 判断字符串是否以指定字符串结尾
substring(int begin) String 从指定索引开始截取字符串至末尾
substring(int begin,int end) String 截取[begin,end)区间内的字符串
split(String regex) String[] 按执行字符串或正则表达式切分原字符串,如果指定内容不在末尾,n个指定字符能得到n+1个子串;如果指定内容在末尾,n个指定字符嫩得到n个字串(不包含末尾的无效字符)
replace(char oldChar,char newChar) String 将原字符串中的所有指定字符替换成新的字符
String.valueOf(参数) String 将任意参数转换成字符串,通常用于原始类型转换成字符串
String.ormat(String 格式,Object... obj) String 根据指定格式转换参数,常用于将浮点数保留小数。如:String.fformat("%4.2",10.0/3);表示将计算的结果四舍五入保留2位小数转换为字符串;如果最终数据所占位置小于4,原样输出,大于4在最前面补空格。

可变字符串

String字符串对象是一个常量,定义后值不能改变,如果要频繁的进行更新,就会不停的创建新的对象,执行效率低,所以可以使用可变字符串。

StringBuilder类

非线程安全,建议在单线程环境下使用

StringBuffer类

线程安全,建议在多线程环境下使用

StringBuilder类和StringBuffer类中的方法一致,下面以StringBuilder类为例

构造方法

构造方法 作用
StringBuilder() 创建一个大小为16的字符串数组,表示一个空白字符。类似于String str="";
StringBuilder(String str) 创建一个str长度+16的字符数组后,将str添加到其中。类似于String str = "初始值"

常用方法

常用方法名 作用
append(Object obj) 将任意类型的参数添加到原可变字符串末尾
delect(int a,int b) 将区间[a,b)的内容进行删除
delectCharAt(int index) 将指定索引位置的元素进行删除
insert(int index,Object obj) 在索引index上插入obj
replace(int start,int end,String str) 将[start,end)区间内的字符替换成str
reverse() 反转字符串

注意:

1、上述表格中的方法都是直接操作在同一个字符串对象,每次调用方法后,原字符串都会发生变化

2、StringBuffer和StringBuilder并没有重写equals方法,所以可变字符串的值是否相同时,调用的是equals中原始的==判断。如果要判断两个可变字符串的值是否相同时,需要将其转换为String后调用equals判断

可变字符串和字符串之间的转换

字符串String转换成可变字符串StringBuilder

        通过构造方法将String类型包装为可变字符串对象

        String str = "张三";

        StringBuilder sb = new StringBuilder(str);

可变字符串StringBuilder转换成字符串String

方法一:String.valueOf(Object obj)方法

方法二:任何数据都可通过toString()方法转换成字符串

方法三:拼接空字符串       

        StringBulider sb = new StringBuilder("你好");

        String str = String.valueOf(sb);//方法一

        String str2 = sb.toString();//方法二

        String str3 = sb+" ";//方法三

面试题:比较String、StringBuilder、StringBuffer的区别

相同点:

        1、都表示字符串、操作字符串,都提供了一些操作字符串的方法

        2、有公共的方法,如charAt(),indexOf()等

        3、都是被关键字final修饰的类,不能够被继承

不同点:

        1、String定义的字符串是一个常量,可变字符串定义的字符串是一个变量

        2、String类中的方法调用后不会改变原本字符串的值,可变字符串调用方法后会改变原字符串的值

        3、StringBuilder是非线程安全的可变字符串类,适用于单线程,StringBufffer是线程安全的可变字符串类,StringBuffer线程安全,因为类中的方法使用synchronized修饰,是一个同步方法,适用于多线程

字符串和可变字符串的总结:

在频繁操作同一个字符串时,String的执行效率低,一定要使用可变字符串StringBuilder或者StringBuffer类的对象,不能使用String类的对象,频繁操作使用StringBuffer可变字符串类

System类

该类中的属性和方法都是静态的,直接通过类名访问,该类不能够创建对象,不是因为他是抽象类,而是因为他的构造方法是私有的。

常用方法

常用属性和方法 作用
System.out 获取系统打印输出流PrintStream对象,用于控制台打印信息
System.in 获取输入流InputStream对象,用于获取输入的信息
System.err 获取系统打印输出流PrintStream对象,用于控制台打印异常信息
System.exit(int statues) 终止虚拟机运行,参数0表示正常终止(退出)
System.currentTimemilles() 计算1970年1月1日零时零分零秒到现在时间的毫秒数,中国是UTC(+8),所以是从1970年1月1日八时零分零秒到现在时间所经过的毫秒数,返回long类型
System.arraycopy(原数组,原数组起始位置,目标数组,目标数组起始位置,原数组要复制的元素数量) 将原数组中指定长度的元素复制到新数组中

Runtime类

Runtime类的对象表示程序运行时对象,包换了程序运行环境相关的信息,常用于获取运行环境信息或执行某个命令。

特点

该类不是一个抽象类 ,它的构造方法是私有的,所以不能够创建对象

提供了一个静态方法getRuntime(),通过Runtime.getRuntime()可以获取一个Runtime类的对象

Date类

Date类 是一个日期类,表示日期时间的类,位于java.util包下

构造方法

常用构造方法 说明
Date() 创建当前瞬间对应的日期对象
Date(long l) 创建指定瞬间对应的日期对象
Date(int year, int month, int day) 该构造方法已过时。创建指定年月日的日期对象(年是1900年起经过的年数,月用0-11表示1到12月)

常用方法

常用方法 作用
getTime() 得到对应Date对象表示的毫秒数
setTime(long l) 设置Date对象的毫秒数
after(Date when) 判断调用日期对象是否在when之后
before(Date when) 判断调用日期对象是否在when之前

SimpleDateFormat类

是一个用于格式化日期的类

构造方法

常用构造方法 作用
SimpleDateFormat(String pqtten) 创建一个日期模板的格式化日期对象

日期模板

特殊字符 作用
yyyy 年份
MM 月份
dd 日期
HH 24小时制
hh 12小时制
mm 分钟
ss
E 星期
以上两个字母都可以写成一个,如5月 M:5 MM:05
yyyy/MM/dd HH:mm:ss E 2020/11/01 23:13:30

常用方法

常用方法 返回值 作用
format(Date date) String 将Date对象按日期模板转换成字符串
parse(String str) Date 将满足日期模板的字符串转换成Date对象

Calender类

是一个日历类,包含了很多日历相关的信息。该类是一个抽象类,不可以创建对象,可以通过Calendar.getInstance()获取该类的实例

该类中有许多倍fianl和static修饰的常量,实际是一个数字,用来获取指定信息

常量

作用
Calendar.YEAR 年份
Calendar.MONTH 月份(0-11表示1-12月)
Calendar.DATE 日期
Calendar.DAY_OF_WEEK 星期(1-7表示从周天到周六)
Calendar.HOUR 12进制小时
Calendar.HOUR_OF_DAY 24进制小时
Calendar.MINUTE 分钟
Calendar.SECOND
Calendar.DAY_OF_WEEK 本周第几天
Calendar.DAY_OF_MONTH 本月第几天
Calendar.DAY_OF_YEAR 本年第几天
Calendar.WEEK_OF_MONTH 本月第几周
Calendar.WEEK_OF_YEAR 本年第几周

常用方法

常用方法 作用
get(int filed) 根据日历字段获取对应的值
getTime() 获取对应的Date对象(Calendar对象转换成Date对象)
getMaximum(int filed) 获取指定日历字段支持的最大值,如Calendar.DATE最大为31
getActualMaximun(int filed) 获取指定日历字段在当前日期下的实际最大值,如11月,Calendar.DATE最大为30
set(int filed,int value) 将指定的日历字段设置为指定值
set(int year,int month,int date) 同时设置日历对象的年月日
setTime(Date date) 将Date对象作为参数设置日历对象的信息

包装类

包装类就是原始类型对应的类类型,包装类通常用于字符串和原始类型之间的转换

包装类 原始类型
Byte byte
Short short
Integer int
Long long
loat float
Double double
Character char
Boolean boolean

特点

1、八个原始类型中,除了int和char之外,其余类型的包装类,都是将首字母改为大写,int对应Integer,char对应Character

2、包装类都是被final修饰的,不能被继承

3、除了Character类之外,其余包装类都有两个构造方法:参数为原始类型或者String的构造方法,Character的构造方法只有一个,参数为char类型.这些构造方法用于将原始类型或字符串转换成包装类对象

4、除了Character类,其余类都有静态方法parse原始类型(String str),用于将字符串装换成对应的原始类型

5、除了Boolean类,其余的包装类都有MAX_VALUE和MIN_VALUE这两个静态属性,用于获取对应类型支持的最大最小值

6、所有包装类都重写了toString()方法,用于将包装类对象转换为String对象

字符串与原始类型之间的转换

字符串转换成原始类型

使用包装类.parse原始类型(String str)

        String str = "123";
        //将String类型转换成int类型
        int num = Integer.parseInt(str);
        System.out.println(num);
        //将String类型转换成double类型
        double num2 = Double.parseDouble(str);
        System.out.println(num2);
        //将String类型转换成float类型
        float num3 = Float.parseFloat(str);
        System.out.println(num3);
        //将String类型转换成byte类型
        byte num4 = Byte.parseByte(str);
        System.out.println(num4);
        //将String类型转换成short类型
        short num5 = Short.parseShort(str);
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值