字符串 String 类

一.String 类中常用的方法

1.   length()获取字符串长度。 

语法: str.length 

说明:length() ;方法会返回字符数量,获取字符串长度。(需要注意,字符串的length()方法与数组的length 属性虽然都是获取长度的,但是两者也有不同 ,String 的length()方法是类的成员方法 右括号;数组的length属性是一个数组的属性 没有括号);

2.  charAt() 获取指定位置的字符

语法:str.charAt(int index); 说明 str==任意字符串对象  index==char 值的索引下标。

3.  indexOf() 获取子字符串索引位置 

语法:str.indexOf(substr);   str==任意字符串对象。 substr==要搜索的字符或者字符串

注意: indexOf方法返回的是搜索的字符或者字符串 在字符中首次出现的索引位置,如果没有检索到 则返回 -1;

4. startsWith() 判断字符串是否以指定的前缀开始

语法 : str.startsWith(prefix) ;  str==任意字符   prefix==作为前缀的字符串。返回值为boolean类型;

5.endsWith() 判断是否以指定的后缀结束 

语法: str.endsWith(suffix) ;str==任意字符 suffix==指定的后缀的字符串 。返回值为boolean 类型;

6.tocharArray(); 可以将字符串转换为一个字符数组

语法:str.tocharArray(); str==任意字符串    返回的是一个char 类型的数组

7.contains()判断字符串中是否包含指定的内容 

语法:str.contains(String); str==任意字符 String ==查询的字符

8.截取字符串 subString();

语法:subString(beginIndex,endIndex); beginindex==起始下标索引位置  endindex==结束下标索引位置(需要注意  截取是从下标 “0” 开始  起始下标索引位置是包含当前索引   结束下标位置不包含当前索引)

9.字符串替换replace(); 可以将指定字符替换为新的字符

语法:str.replace(oldstr,newstr); oldstr==要被替换的字符串 newstr==替换后的字符串

10.大小写转换

1.toLowerCase();该方法可以将字符串中的所有字符转换为小写。如果字符串中没有应该被转换的字符串,则将原子返回.

2.toUpperCase();  该方法可以将字符串中的所有字符转换为大写.如果字符串中没u有应该被转换的字符串,则返回原字符串.

11.trim();该方法可以将字符串首尾处的空白内容都删除

语法:str.trim(); str==任意字符串;

12.==和equals的区别 和使用方法;

==号操作符如果用于引用数据类型 ,则是比较连两个两个数据的值是否相等 例如:String sr1="hello"  String sr2="hello"; sr1==sr2 (true);

==操作符专门用来比较两个变量的值是否相等,也就是说用户比较变量所对应的内存中所存储的数值是否相等,要比较两个基本数据类型的数据或者两个引用类型的变量是否相等;只能用==操作符;

equals 则是比较两个对立对象的内容是否相等,就好比如去比较两个人的长相是否相同,它比较的两个对象是独立的;

例如:String a=new String("sss"); String b=new String("sss");  a==b 返回(false)  a.equals(b) 返回(true);

注意:String a=new String ("sss");这种方式相当于创建了两个对象 一个位于堆内存区中 一个位置字符串常量池当中 

这种方式去创建字符串对象时,jvm会首先去检查字符串常量池中是否存在该字符串对象

如果存在,就不会在常量池中创建对象,会在堆内存中创建。并且返回字符常量池的内存地址 而不是堆内存地址

如果不存在 ,会首先在字符串常量池中创建该字符串对象,然后会把字符串常量池的内容拷贝到堆内存中 ,然后返回堆内存地址;

总结:

==:

如果用与基本数据类型,则比较两个变量的值是否相等

如果用于引用数据类型 ,则是比较所指向的对象的地址是否相等(堆内存中的地址)

equals

equals不能用户基本数据类型的变量

如果没有对equals方法进行重写,则比较的是引用数据类型的变量所指向的对象的地址,也是说比较两个引用数据类型所指向的内容是否相等

二:可变字符串 Stringbuffer

1.append() 该方法可以将参数转换为字符串 追加到后面

语法:sbf.append(obj);  sbf==任意Stringbuffer对象  obj==任意数据类型的对象

2.setCharAt() 该方法可以给指定的索引处的字符修改为你要替换的字符

语法:sbf.setcharAt(index,ch);  sbf==任意Stringbuffer对象  index==被替换字符的索引 ch==被替换的字符

3.insert()该方法可以将字符串插入指定的索引值上

语法:sbf.insert(int offset,String str);  sbf==任意Stringbuffer对象  offset==插入的索引下标位置 ,str==插入的字符串

4.delete() 该方法可以删除(移除)指定下标内的数据

语法:sff.delete(start,end); sbf==任意Stringbuffer对象  start==起始索引(包含)   end==结束索引(不包含)

5.其他方法 Stringbuffer类中还有类似String类中的方法 比如:indexOf() 获取字符串所在位置索引,length() 获取长度,charAt获取指定索引位置的字符 等等。

三,可变字符串Stringbuffer 和String的区别

共同点:

1.两个类都是字符串缓冲类   2.两个类的方法都是一样的.

不同点:

1.Stringbuffer线程是安全的的,操作效率底,Stringbuillder是非线程安全的,操作效率高。

2.Stringbuffer出现jdk1.0中,Stringfbuillder出现在jdk1.5中;

3.String对象是不可变的对象,当我们每次操作string都会重写新建对象来保存值;

4.Stringbuffer对象的内容可以被改变,Stringbuffer在处理字符串的时候,不产生新的对象,在内存上优先于String类。在实际使用中,如果需要对某一个字符串进行 增删查改 使用Stringbuffer要更加合适。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343