ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

String和StringBuffer

2021-10-12 22:02:45  阅读:125  来源: 互联网

标签:String int StringBuffer 对象 str 字符串


String类 ——不变字符串类

不变字符串:字符串一旦建立,其内容就不能改变,如果要改变字符串的内容,就要生成新的实例。

初始化字符串常用的的两种方式

String str1 = new String("Hello");	//方式1
String str2 = "Hello";		//方式2

String类型的构造方法

//构造一个空的字符串
		String()  
//用一个字符串来生成一个新的字符串,两个字符串相等
		String(String str)
//用数组生成一个新的字符串
		String(char[] ch)
//用数组生成一个从ch[a]开始,长度为b新的字符串,
		String(char[] ch,int a,int b)
//利用StringBuffer对象来创建一个String类型的字符串
        String(StringBuffer str)

String类提供的方法

int length()	//返回字符串的长度
char charAt(int index)	//返回字符串中index位置的字符
String toLowerCase()	//将当前字符串中所有字符转换成小写
String toUpperCase()   //将当前字符串中所有字符转换成大写
String subString(int beginIndex)	//返回从beginIndex开始的子串
String subString(int beginIndex,int endIndex)	//返回从beginIndex开始到endIndex之前的子串
String replace(char oldChar,char newChar)	//将字符串中的所有oldChar转换为newChar
String indexOf(String str)	//返回str在字符串中第一次出现的位置
String concat(String str)	//将str连接在当前字符串的尾部
boolean equals(String str)	//比较str与当前字符串的内容是否相同
boolean equalsIgnoreCase(String str)	//比较str与当前字符串的内容是否相同,并且忽略大小写
int compareTo(String str)	/*比较str和当前字符串的内容,返回差值。(若str和当前字符串相等,返回0;若和当前字符串不相等,则返回第一个不同字符的差值;若str和当前字符串仅长度不同,则返回两者长度的差值)
  • equals()

    判断两个String对象内容是否相同。

  • ==

判断两个String对象是否为同一实例,即在内存中的存储空间是否一致。

        String s1 = "Hello world!";
        String s2 = "Hello world!";
        String s3 = new String("Hello world!");
        System.out.println(s1.equals(s2));      //输出true
        System.out.println(s1.equals(s3));      //输出true
        System.out.println(s1==s2);             //输出true
        System.out.println(s1==s3);             //输出false

StringBuffer类——可变字符串类

  • 可变字符串:字符串中的内容是可以改变的

  • StringBuffer在进行字符串处理时,不会再产生新的实例,而是直接操作原字符串

  • 在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer更加合适

  • 系统为StringBuffer类对象分配内存时,除去字符所占空间外,在另加16个字符大小的缓冲区

StringBuffer s1 = new StringBuffer();	
//创建一个大小为16个字符的空StringBuffer对象

StringBuffer s2 = new StringBuffer(40); 
//创建一个大小为40个字符的空StringBuffer对象

StringBuffer s2 = new StringBuffer("Hello");
//创建一个大小为21个字符的空StringBuffer对象

注意:StringBufferString属于不同的类型,也不能直接进行强制类型转换

StringBuffer对象和String对象之间相互转化

        String s = "abc";
        StringBuffer sb1 = new StringBuffer("123");
        StringBuffer sb2 = new StringBuffer(s);     //String转换为StringBuffer
        String s1 = sb1.toString();     //StringBuffer转换为String

StringBuffer类提供的方法

int length()	//返回StringBuffer对象中字符的长度
int capacity()  //返回StringBuffer对象缓冲区的容量
void ensureCapacity(int size)	//设置StringBuffer对象的缓冲区容量
void setLength(int len)	//设置StringBuffer对象字符长度
StringBuffer append(Object obj)	 //连接StringBuffer对象(如果操作后的字符超出已分配的缓冲区,系统会自动为它分配额外的空间)

注意:String中对字符串的操作不是对原操作串对象本身进行的,而是对新生成的一个原操作串对象的拷贝进行的,其操作的结果不影响原字符串。

​ 相反,StringBuffer中对字符串的连接是对原字符串本身进行的,操作之后原字符串发生改变,变成连接后的字符串。

除了对运算符“ + ”进行重载外,java不支持其他运算符的重载

标签:String,int,StringBuffer,对象,str,字符串
来源: https://www.cnblogs.com/lieyanwang/p/15399761.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有