小白学Java10:系统常用类之String,StringBuffer,StringBuilder

系统常用类之String,StringBuffer,StringBuilder

  • 字符串
    • 字符串的分类
  • String
    • 构造方法
    • 常用方法
  • StringBuffer:可变,线程安全
    • 构造函数
    • 常用方法
  • StringBuilder:可变,线程不安全,但是效率高
    • 构造方法
    • 常用方法

字符串

  • 字符串是字符的序列,它是组织字符的基本数据结构,从某种程度上来说有些类似于字符的数组

字符串的分类

  • 创建之后不会再做修改和变动的字符串常量–String
    • 对于字符串常量,由于程序中经常需要对它做比较,搜索之类的操作,所以通常把它放在一个具有一定名称的对象之中,由程序对该对象完成上述操作。在Java中,存放字符串常量的对象用String类
  • 创建之后允许再做更改和变化的字符串变量-StringBuffer / StringBuilder
    • 对于字符串变量,由于程序中经常需要对它做添加,插入,修改等操作,一般存放在StringBuffer/ StringBuilder类的对象中。 StringBuffer是线程安全;StringBuilder没有实现线程同步,但速度更快建议使用

String

  • Java.lang.String类是一个特殊的类,可以不用new创建对象;如:String str1=“Hello world!”; Java编译器自动为字符串常量生成一个String类的实例,因此可以用字符串常量直接初始化一个String对象;程序对字符串处理最多,因此String提供了很多字符串操作方法。

构造方法

//默认构造方法String() 
        String s = new String( );
//使用字节数组来创建字符串        String(byte[] by) / String(byte[] by,int offset,int length)  
        byte[] bytes={97,98,99};
        String s=new String(bytes);
//使用字符数组来创建字符串String(char[] ch) / String(char[] ch,int offset,int length)
        char chars[ ] = { ‘a’ , ‘b’ , ‘c’ };
        String s = new String( chars ) ;
//直接创建值String(String value)
        String s1 = new String(“hello”);
        String s2 = new String(s1);

常用方法

int length()    //获取字符串的长度
char charAt(int index)  //获取当前字符串给定下标的元素
int indexOf(String sub)  //从前往后查给定字符串或字符在当前字符串中第一次出现的位置
int lastIndexOf(String sub)//从后往前查给定字符串或字符在当前字符串中最后一次出现的位置
int compareTo(String oth); //判断当前字符串和给定字符串哪个大,返回的值有三种
    0:相等
    负数,当前对象比给定对象小
    正数:当前对象比给定对象大
String concat(String oth)    //字符串拼接形成新的字符串(A+B)
byte[] getBytes();  //把当前字符串转化为字节数组
char[] toCharArray(); //把当前字符串转化为字符数组
String toLowerCase() //把当前字符串全部转化为小写
String toUpperCase()   //把当前字符串转化为大写
String replace(char oldChar,char newChar); //把当前字符串中的老的字符替换成新的字符
    String replaceAll(String regex,String nchar);
String[] split(String regex);   //以指定字符分割字符串,并以字符串数组的形式输出
substring(int start,int end);//字符串截取,(含头不含尾)
boolean startsWith(String str) ;//判断是否以给定字符串开始
boolean endsWith(String str) //判断是否以给定字符串结束
boolean epuals(String str)://判断当前对象和给定对象是否相等
        equalsIgnoreCase();//忽略大小写,判断两个字符串是否相等

StringBuffer:可变,线程安全

  • java.lang.StringBuffer也可描述字符串,代表可变的字符序列(注:StringBuffer是线程安全的);

构造函数

StringBuffer() //构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符StringBuffer(String str) //构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容StringBuffer(int capacity) //构造一个不带字符,但具有指定初始容量的字符串缓冲区

常用方法

1. StringBuffer append(String str); //字符串拼接
2. StringBuffer reverse();   //反序,生成一个新的字符串
3. StringBuffer insert(int offset, String str);  在某个位置插入字符串
4. StringBuffer delete(int start, int end);  删除从start到end的字符,含头不含尾
5. int length();  获取长度
6. String toString();   转换为String

StringBuilder:可变,线程不安全,但是效率高

  • 一个可变的字符序列,此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快;

构造方法

1. StringBuilder()
2. StringBuilder(String str)
3. StringBuilder(int capacity)

常用方法

1. StringBuilder append(String str); //字符串拼接
2. StringBuilder reverse(); 倒序
3. StringBuilder insert(int offset, String str);  插入
4. StringBuilder delete(int start, int end); 删除
5. int length(); 获取长度
6. String toString(); 转换为String

你可能感兴趣的:(学习笔记,java)