2020-01-11

String 类练习

1、字符串反转,例如将“abc”变成“cba”

2020-01-11_第1张图片

2、统计一个字符串里面另一个字符出现的次数,例如统计"monkey"在"I am monkey1024.monkey like banana.little monkey is smart"

2020-01-11_第2张图片

3、统计一个字符串中大写字母出现的次数

2020-01-11_第3张图片

StringBuffer简介

StringBuffe是一个字符串缓冲区, 如果需要频繁的对字符串进行拼接时,建议使用StringBuffer.

工作原理

StringBuffer的底层是char数组,如果没有明确设定,则系统会默认创建一个长度为16的char类型数组,在使用时如果数组容量不够了,则会通过数组的拷贝对数组进行扩容,所以在使用StringBuffer时最好预测并手动初始化长度,这样能够减少数组的拷贝,从而提高效率。

String与StringBuffer的区别?

String是不可变字符序列,存储在字符串常量池中

StringBuffer的底层是char数组,系统会对该数组进行扩容


通过API可以看到StringBuilder和StringBuffer里面的方法是一样的, 那他们有什么区别呢?

StringBuffer是jdk1.0版本中加入的,是线程安全的,效率低

StringBuilder是jdk5版本加入的,是线程不安全的,效率高

包装类

什么是包装类?

Java里面8个基本数据类型都有相应的类,这些类叫做包装类。

包装类有什么优点

可以在对象中定义更多的功能方法操作该数据,方便开发者操作数据,例如基本数据类型和字符串之间的转换。


2020-01-11_第4张图片
基本类型和对应的包装类

public class IntegerTest01 {

/*byte      Byte

short    Short

int      Integer

long      Long

float    Float

double    Float

char      Character

boolean  Boolean

*/

    public static void main(String[] args) {

//int类型的最大值

        System.out.println(Integer.MAX_VALUE);

        //int类型的最小值

        System.out.println(Integer.MIN_VALUE);

        Integer i1 =new Integer(100);

        System.out.println(i1);

        //如果传入的不是数字类型的字符串,则会报出NumberFormatException

        Integer i2 =new Integer("1024");

        System.out.println(i2);

        //将Integer类型转换为int类型

        int i3 = i2.intValue();

        //将String类型转换为int类型

        int i4 = Integer.parseInt("100");

        //将int类型转换为Integer类型

        Integer i5 = Integer.valueOf(8);

        String s1 = Integer.toBinaryString(10);//讲一个十进制的int类型转换为二进制

        String s2 = Integer.toOctalString(10);//将一个十进制的int类型转换为八进制

        String s3 = Integer.toHexString(10);//将一个十进制的int类型转换为十六进制

        System.out.println(s1);

        System.out.println(s2);

        System.out.println(s3);

    }

}

Integer-int-String三种类型之间的转换

你可能感兴趣的:(2020-01-11)