黑马程序员------String类
2015-10-31 17:55
288 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
String 类
特点:
1、字符串一旦初始化就不能更改:
String s = “abc”; s = “bcd”;
这里s只是指向了新的对象,而不是”abc”更改了,在常量池中创建一个对象,常量池中的对象是不能更改的
2、String s = “abc”;String s1 = new String(“abc”);第一个创建一个对象,第二个创建2个对象
(一个是“abc”这个直接量对应的字符串对象;一个是由new String()构造器返回的字符串对象。)
3、String类不能有子类,已经被声明为final类型
4、Object 中equals()比较的是地址值,String 中重写了这个方法,比较的是字符串是否相同
5、String s = “123”,String s1 =”123”; s==s1(true)
因为s1会默认先去字符串的池中找有没有”123”这个字符串,有就直接用,不会再创建
6、String s = “abc”;String b = “a” + “bc”;(s == b);true
b在编译时会先把两个字符串合并,然后在字符串池中找有没有与合并后的字符串相同的字符串,有就直接取出来用,没有就创建字符串
字符串方法:
1、length(): 获取字符串长度
2、char charAt(int x):根据角标获取字符串相应的字符(若有重复字符,获取第一次出现位置)
3、int indexOf(char ch):根据字符获取在字符串的位置(不存在返回-1)
4、int indexOf(char ch ,int x):从指定位置开始获取字符在字符串的位置
5、int lastIndexOf(‘a’):反向索引字符在字符串的位置(角标还是从左到右数)
6、boolean startsWith(“f”) | boolean endWith(“f”):字符是否以什么开头或结尾(参数是String类型)
7、boolean contains(“a”):是否包含某字符(参数是String类型)
8、boolean equalsIgnoreCase(“aaaaa”):不关心大小写比较字符串
9、s.toUpperCase();变成大写
10、s.toLowerCase();此案成小写
11、字符数组–>字符串
String s = new String(ch[0]); | ch[0]+””
s.copyValueOf(ch):把字符数组变成字符串
12、字符串–>字符数组
s.toCharArray():返回char[]
13、字符串–>字节数组
s.getBytes():返回byte[]
14、replace(‘a’, ‘b’) | replace(“a”, “123”) | replaceFirst(“a”, “123”) :
默认当字符串中a出现的位置全部替换,replaceFirst只替换第一次出现的位置,若替换的值不存在,返回-1
15、splite(“”):根据条件分割,返回String[]
16、substring(0,4) :获取字符串的一部分,返回字符串(从0开始,到4结束,但是不包含4的元素)
17、trim():去除字符串两端空格
18、compareTo(“aaav”):比较两个字符串自然顺序位大小
19、String s =”abc” ;String s1 = “adc”; s.compareTo(s1):(当比较到d时,d的ASICC码大于b,所以s1大于s,后面不用比)
20、boolean isEmpty():字符串是否为空 (若s = null,返回空指针异常)
StringBuffer | StringBuilder(不确定字符长度的时候使用)
特点:
1、他是一个容器(当字符串变化时,不会创建新的字符串,而是在原来的字符串上进行增加)
2、长度是可以变化的
3、可以操作多种数据类型
4、最终通过tostring()返回字符串
5、stringBuffer线程安全,效率低,StringBuilder线程不安全,效率高
添加:append():不支持byte和short类型,默认自动添加到最后
删除:delete(0,4)(包含头,不包含尾)| deleteCharAt(2):删除指定位置字符
获取:subString(3,4)获取指定范围字符串,返回String类型
替换:replace(start,end):返回StringBuffer类型
反转:reverse():返回StringBuffer类型
getChars(1, 2, ch, 0);:获取指定范围的字符串(包含头不包含尾),放入指定的char[]数组,并指定从数组的哪里开始放入
数据类型对象包装类
byte Byte | int Integer | char Character | long Long
boolean Boolean …..
作用:可以使基本数据类型调用相关方法,提高效率
基本数据类型–>字符串
方法:一般就是加 “” ,最方便
字符串–>基本数据类型(文本框中的数据都是String类型)
int x = Integer.parseInt(“12345”);(其他类型都一样 类型 变量名 = 类型.parse类型(数据)),但是”12345a”就会报错,因为a不属于int类型
十进制–>其他进制
Integer.toBinaryString(20):二进制
Integer.toHexString(20) :十六进制
Integer.toOctalString(20) :八进制
其他–>十进制
Integer.parseInt(“3c”,16):16是确定3c的进制,而不是指定3c变成什么进制类型
自动装箱和拆箱
Integer x =10;(自动装箱,Integer x = new Integer(10)相同)
x = x+2;(可以运算,x会自动先变为基本数据类型,然后运算,然后再变成类对象)
注意:变为对象之后可以变为x = null (最好进行逻辑判断)
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
String 类
特点:
1、字符串一旦初始化就不能更改:
String s = “abc”; s = “bcd”;
这里s只是指向了新的对象,而不是”abc”更改了,在常量池中创建一个对象,常量池中的对象是不能更改的
2、String s = “abc”;String s1 = new String(“abc”);第一个创建一个对象,第二个创建2个对象
(一个是“abc”这个直接量对应的字符串对象;一个是由new String()构造器返回的字符串对象。)
3、String类不能有子类,已经被声明为final类型
4、Object 中equals()比较的是地址值,String 中重写了这个方法,比较的是字符串是否相同
5、String s = “123”,String s1 =”123”; s==s1(true)
因为s1会默认先去字符串的池中找有没有”123”这个字符串,有就直接用,不会再创建
6、String s = “abc”;String b = “a” + “bc”;(s == b);true
b在编译时会先把两个字符串合并,然后在字符串池中找有没有与合并后的字符串相同的字符串,有就直接取出来用,没有就创建字符串
字符串方法:
1、length(): 获取字符串长度
2、char charAt(int x):根据角标获取字符串相应的字符(若有重复字符,获取第一次出现位置)
3、int indexOf(char ch):根据字符获取在字符串的位置(不存在返回-1)
4、int indexOf(char ch ,int x):从指定位置开始获取字符在字符串的位置
5、int lastIndexOf(‘a’):反向索引字符在字符串的位置(角标还是从左到右数)
6、boolean startsWith(“f”) | boolean endWith(“f”):字符是否以什么开头或结尾(参数是String类型)
7、boolean contains(“a”):是否包含某字符(参数是String类型)
8、boolean equalsIgnoreCase(“aaaaa”):不关心大小写比较字符串
9、s.toUpperCase();变成大写
10、s.toLowerCase();此案成小写
11、字符数组–>字符串
String s = new String(ch[0]); | ch[0]+””
s.copyValueOf(ch):把字符数组变成字符串
12、字符串–>字符数组
s.toCharArray():返回char[]
13、字符串–>字节数组
s.getBytes():返回byte[]
14、replace(‘a’, ‘b’) | replace(“a”, “123”) | replaceFirst(“a”, “123”) :
默认当字符串中a出现的位置全部替换,replaceFirst只替换第一次出现的位置,若替换的值不存在,返回-1
15、splite(“”):根据条件分割,返回String[]
16、substring(0,4) :获取字符串的一部分,返回字符串(从0开始,到4结束,但是不包含4的元素)
17、trim():去除字符串两端空格
18、compareTo(“aaav”):比较两个字符串自然顺序位大小
19、String s =”abc” ;String s1 = “adc”; s.compareTo(s1):(当比较到d时,d的ASICC码大于b,所以s1大于s,后面不用比)
20、boolean isEmpty():字符串是否为空 (若s = null,返回空指针异常)
StringBuffer | StringBuilder(不确定字符长度的时候使用)
特点:
1、他是一个容器(当字符串变化时,不会创建新的字符串,而是在原来的字符串上进行增加)
2、长度是可以变化的
3、可以操作多种数据类型
4、最终通过tostring()返回字符串
5、stringBuffer线程安全,效率低,StringBuilder线程不安全,效率高
添加:append():不支持byte和short类型,默认自动添加到最后
删除:delete(0,4)(包含头,不包含尾)| deleteCharAt(2):删除指定位置字符
获取:subString(3,4)获取指定范围字符串,返回String类型
替换:replace(start,end):返回StringBuffer类型
反转:reverse():返回StringBuffer类型
getChars(1, 2, ch, 0);:获取指定范围的字符串(包含头不包含尾),放入指定的char[]数组,并指定从数组的哪里开始放入
package com.day01; public class Day01 { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("<name>\r\n"); sb.append("<a>\r\n"); sb.append("第一个\r\n"); sb.append("</a>\r\n"); sb.append("<b>\r\n"); sb.append("第二个\r\n"); sb.append("</b>\r\n"); sb.append("<c>\r\n"); sb.append("第三个\r\n"); sb.append("</c>\r\n"); sb.append("<d>\r\n"); sb.append("第四个\r\n"); sb.append("</d>\r\n"); sb.append("</name>\r\n"); System.out.println(sb.toString()) "//打印字符串" System.out.println(sb.delete(7, 10))"删除角标7-9的字符" System.out.println(sb.substring(7, 10))"获取角标7-9的字符" System.out.println(sb.reverse())"字符串翻转打印" } }
数据类型对象包装类
byte Byte | int Integer | char Character | long Long
boolean Boolean …..
作用:可以使基本数据类型调用相关方法,提高效率
基本数据类型–>字符串
方法:一般就是加 “” ,最方便
字符串–>基本数据类型(文本框中的数据都是String类型)
int x = Integer.parseInt(“12345”);(其他类型都一样 类型 变量名 = 类型.parse类型(数据)),但是”12345a”就会报错,因为a不属于int类型
十进制–>其他进制
Integer.toBinaryString(20):二进制
Integer.toHexString(20) :十六进制
Integer.toOctalString(20) :八进制
其他–>十进制
Integer.parseInt(“3c”,16):16是确定3c的进制,而不是指定3c变成什么进制类型
自动装箱和拆箱
Integer x =10;(自动装箱,Integer x = new Integer(10)相同)
x = x+2;(可以运算,x会自动先变为基本数据类型,然后运算,然后再变成类对象)
注意:变为对象之后可以变为x = null (最好进行逻辑判断)
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
相关文章推荐
- 陌陌科技面试题
- 程序员成长之路---“学习”与“面试笔试”总结篇之曲折的成长历程与求职历程
- iOS面试题
- iOS面试题
- 100个iOS开发/设计面试题汇总
- 一个java程序员自学IOS开发之路(四)
- 面试题
- 牛客堂刷题(常见面试题精讲)之矩阵打印
- 看清程序员要走的道路
- 面试题:android四大组件
- 程序员约架事件中,薛非为何不应战?
- 一个java程序员自学IOS开发之路(三)
- [转]面向程序员的数据库访问性能优化法则
- 黑马程序员_IO流的一些总结
- Java面试集锦06-继承和多态
- 黑马程序员—函数及数组
- 从一次面试经历谈PHP的普通传值与引用传值以及unset
- 成为专业程序员的 6 个技巧
- 黑马程序员——Java IO
- 黑马程序员——Java反射