- String字符串常量特点
- String两种方式创建字符串的区别
- String的构造方法
- public String():空构造
- public String(byte[] bytes):把字节数组转成字符串
- public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
- public String(char[] value):把字符数组转成字符串
- public String(char[] value,int index,int count):把字符数组的一部分转成字符串,index第一位开始取(包括),count取多少个
- public String(String original):把字符串常量值转成字符串
- length() 返回此字符串的长度
- String类的判断功能
- boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
- boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
- boolean contains(String str):判断大字符串中是否包含小字符串,区分大小写
- boolean startsWith(String str):判断字符串是否以某个指定的字符串开头,区分大小写
- boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾,区分大小写
- boolean isEmpty():判断字符串是否为空
- String类的获取功能
- char charAt(int index):获取指定索引位置的字符
- int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
- int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
- int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
- int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
- String substring(int start):从指定位置开始截取字符串,默认到末尾。
- String substring(int start,int end):从指定位置开始到指定位置结束截取字符串,不包含结束位置
- String类的转换功能
- byte[] getBytes():把字符串转换为字节数组。
- char[] toCharArray():把字符串转换为字符数组。
- static String valueOf(char[] chs):把字符数组转成字符串。
- static String valueOf(int i):把int类型的数据转成字符串。
- String toLowerCase():把字符串转成小写
- String toUpperCase():把字符串转成大写。
- String concat(String str):把字符串拼接。
- String替换功能
- String replace(char old,char new):把字符串中的某个字符用新的字符所替换
- String replace(String old,String new)把字符串中的某个字符串用新的来替换
- String trim() 去除字符串两端空格
字符串是常量;它们的值在创建之后不能更改,这是什么意思呢?
就是说一旦这个字符串确定,那么就会在内存区域中生成这个字符串。
字符串本身不能改变,但str变量中记录的地址值是可以改变的。
String特点:一旦被赋值就不能改变
通过使用双引号的方式创建对象与new的方式创建对象,有什么不同呢?看如下程序:
String s3 = "abc"; String s4 = new String("abc"); System.out.println(s3==s4);//false System.out.println(s3.equals(s4));//true, //因为String重写了equals方法,建立了字符串自己的判断相同的依据(通过字符串对象中的字符来判断)
String的构造方法s3和s4的创建方式有什么不同呢?
s3创建,在内存中只有一个对象。这个对象在字符串常量池中
s4创建,在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中
public String():空构造
- public String():空构造
- public String(byte[] bytes):把字节数组转成字符串
- public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
- public String(char[] value):把字符数组转成字符串
- public String(char[] value,int index,int count):把字符数组的一部分转成字符串,index第一位开始取(包括),count取多少个
- public String(String original):把字符串常量值转成字符串
- length() 返回此字符串的长度。
class Test { public static void main(String[] args) { String s=new String(); System.out.println(s); } } //无输出值,并不是null
如果要输出需要主动添加值
class Test { public static void main(String[] args) { String s=new String("aaa"); System.out.println(s); } } //输出:aaapublic String(byte[] bytes):把字节数组转成字符串
注意是字符串
class Test { public static void main(String[] args) { //添加字节 byte[] bytes = {'a', 'b', 'c', 'd'}; String s =new String(bytes); System.out.println(s); //输出:abcd //添加数字 //会根据Ascii码输出 byte[] bytes2 = {97,98,99,100}; String s1 = new String(bytes2); System.out.println(s1); //输出:abcd } }public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
注意是字符串
class Test { public static void main(String[] args) { //public String(byte[] bytes,int index,int length) // index 起始位置,length 取多少个 //添加字节 byte[] bytes = {'a', 'b', 'c', 'd'}; // 参数offset:为数组元素的起始索引位置, // 参数length为要几个元素 String s =new String(bytes,1,2); System.out.println(s); //输出:bc //添加数字 //会根据Ascii码输出 byte[] bytes2 = {97,98,99,100}; String s1 = new String(bytes2,1,2); System.out.println(s1); //输出:bc } }public String(char[] value):把字符数组转成字符串
注意是字符串
class Test { public static void main(String[] args) { //添加字符 char[] chars = {'a', 98, 'c', 100}; String s = new String(chars); //根据Ascii码输出 System.out.println(s); //输出:abcd } }public String(char[] value,int index,int count):把字符数组的一部分转成字符串,index第一位开始取(包括),count取多少个
注意是字符串
class Test { public static void main(String[] args) { // public String(char[] value,int index,int count) // index 起始位置,length 取多少个 //添加字符 char[] chars = {'a', 98, 'c', 100}; // 参数offset为数组元素的起始索引位置 // 参数count为要几个元素 String s = new String(chars,1,2); //根据Ascii码输出 System.out.println(s); //输出:bc } }public String(String original):把字符串常量值转成字符串
class Test { public static void main(String[] args) { String s=new String("我爱学习"); System.out.println(s); //输出:我爱学习 } }length() 返回此字符串的长度
class Test { public static void main(String[] args) { String s = "我爱学习"; System.out.println(s.length()); //输出:4 } }String类的判断功能
boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
- boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
- boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
- boolean contains(String str):判断大字符串中是否包含小字符串,区分大小写
- boolean startsWith(String str):判断字符串是否以某个指定的字符串开头,区分大小写
- boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾,区分大小写
- boolean isEmpty():判断字符串是否为空。
class Test { public static void main(String[] args) { String s1 = "ZhangSan";// Z/S大 String s2 = "ZhangSan";// Z/S大 String s3 = "zhangsan";// z/s小 System.out.println(s1.equals(s2));//true System.out.println(s1.equals(s3));//false } }boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
class Test { public static void main(String[] args) { String s1 = "ZhangSan";// Z/S大 String s2 = "ZhangSan";// Z/S大 String s3 = "zhangsan";// z/s小 System.out.println(s1.equalsIgnoreCase(s2));//true System.out.println(s1.equalsIgnoreCase(s3));//true } }boolean contains(String str):判断大字符串中是否包含小字符串,区分大小写
class Test { public static void main(String[] args) { String s1 = "ZhangSan";// Z/S大 String s2 = "ZhangSan";// Z/S大 String s3 = "zhangsan";// z/s小 System.out.println(s1.contains("ang"));//true System.out.println(s1.contains("Ang"));//false } }boolean startsWith(String str):判断字符串是否以某个指定的字符串开头,区分大小写
class Test { public static void main(String[] args) { String s1 = "ZhangSan";// Z/S大 String s2 = "ZhangSan";// Z/S大 String s3 = "zhangsan";// z/s小 System.out.println(s1.startsWith("z"));//输入小写z,结果:false System.out.println(s1.startsWith("Z"));//输入大写Z,结果:true } }boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾,区分大小写
class Test { public static void main(String[] args) { String s1 = "ZhangSan";// Z/S大 String s2 = "ZhangSan";// Z/S大 String s3 = "zhangsan";// z/s小 System.out.println(s1.endsWith("an"));//true System.out.println(s1.endsWith("An"));//false } }boolean isEmpty():判断字符串是否为空
class Test { public static void main(String[] args) { String s1 = "ZhangSan";// Z/S大 String s2 = "ZhangSan";// Z/S大 String s3 = "zhangsan";// z/s小 System.out.println(s1.isEmpty());//false } }String类的获取功能
char charAt(int index):获取指定索引位置的字符
- char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引 int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引 int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。 int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。 String substring(int start):从指定位置开始截取字符串,默认到末尾。 String substring(int start,int end):从指定位置开始到指定位置结束截取字符串,不包含结束位置
class Test { public static void main(String[] args) { String s = "abcdefg"; System.out.println(s.charAt(5)); //输出:f } }int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
class Test { public static void main(String[] args) { String s = "abcdefg"; System.out.println(s.indexOf("d")); //输出:3 } }int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
class Test { public static void main(String[] args) { String s = "abcdefg"; System.out.println(s.indexOf("cd")); //输出:2 } }int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
class Test { public static void main(String[] args) { String s = "abccba"; System.out.println(s.indexOf("c")); //输出:2 } }int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
class Test { public static void main(String[] args) { String s = "abccbaabccba"; System.out.println(s.indexOf("cb")); //输出:3 } }String substring(int start):从指定位置开始截取字符串,默认到末尾。
class Test { public static void main(String[] args) { String s = "abcdefg"; System.out.println(s.substring(5)); //输出:fg } }String substring(int start,int end):从指定位置开始到指定位置结束截取字符串,不包含结束位置
class Test { public static void main(String[] args) { String s = "abcdefg"; System.out.println(s.substring(2,5)); //输出:cde } }String类的转换功能
byte[] getBytes():把字符串转换为字节数组。
- byte[] getBytes():把字符串转换为字节数组。
- char[] toCharArray():把字符串转换为字符数组。
- static String valueOf(char[] chs):把字符数组转成字符串。
- static String valueOf(int i):把int类型的数据转成字符串。
- String toLowerCase():把字符串转成小写。
- String toUpperCase():把字符串转成大写。
- String concat(String str):把字符串拼接。
会有Ascii码转换
class Test { public static void main(String[] args) { String s = "abcd"; byte[] bytes = s.getBytes(); //遍历数组 for (int i = 0; i < bytes.length; i++) { //逐个取值,按照Ascii码 System.out.println(bytes[i]); //输出:97 // 98 // 99 // 100 } } }char[] toCharArray():把字符串转换为字符数组。
class Test { public static void main(String[] args) { String s = "abcd"; char[] chars = s.toCharArray(); //遍历数组 for (int i = 0; i < chars.length; i++) { //逐个取值 System.out.println(chars[i]); //输出:a // b // c // d } } }static String valueOf(char[] chs):把字符数组转成字符串。
class Test { public static void main(String[] args) { char[] chars = {'a', 'b', 'c', 'd'}; System.out.println(String.valueOf(chars)); //输出:abcd char[] chars2 = {97, 98, 99, 100}; //Ascii码转 System.out.println(String.valueOf(chars2)); //输出:abcd } }static String valueOf(int i):把int类型的数据转成字符串。
class Test { public static void main(String[] args) { String s=String.valueOf(123456); System.out.println(s); //输出:123456 //注意,此时的123456是一个s所代表的字符串 } }String toLowerCase():把字符串转成小写
class Test { public static void main(String[] args) { String s="ABCD"; System.out.println(s.toLowerCase()); //输出:abcd } }String toUpperCase():把字符串转成大写。
class Test { public static void main(String[] args) { String s="abcd"; System.out.println(s.toUpperCase()); //输出:ABCD } }String concat(String str):把字符串拼接。
class Test { public static void main(String[] args) { String s = "ab"; System.out.println(s.concat("cd")); //输出:abcd } }String替换功能
String replace(char old,char new):把字符串中的某个字符用新的字符所替换
- String replace(char old,char new):把字符串中的某个字符用新的字符所替换
- String replace(String old,String new)把字符串中的某个字符串用新的来替换
- String trim() 去除字符串两端空格
class Test { public static void main(String[] args) { String s = "ab"; System.out.println(s.replace("a", "c")); //输出:cb } }String replace(String old,String new)把字符串中的某个字符串用新的来替换
class Test { public static void main(String[] args) { String s = "ab"; System.out.println(s.replace("ab", "cd")); //输出:cd } }String trim() 去除字符串两端空格
class Test { public static void main(String[] args) { String s = " May all the beauty be blessed"; System.out.println(s.trim()); System.out.println(s); //输出:May all the beauty be blessed // May all the beauty be blessed } }