Java学习笔记:String类
2017-04-20 19:25
225 查看
String类:
String类代表了字符串,Java中所有的字符串(如:“abcd”)都由String作为实例来实现。
字符串是常量;它们的值在创建之后不能更改,重新赋值并没有改变而是改变了引用,如果有直接引用,没有则重新创建一个。
String的构造方法:
运行的结果:
0
abcde
bcd
abcde12我
cde1
abcdefg
abcde
String的方法:
1.获取
运行的结果:
str1.length():10
str1.charAt(3):d
str1.indexOf('a'):0
str1.indexOf('b',5):7
str1.indexOf('fab'):5
str1.indexOf('abc',2):6
str1.lastIndexOf('a'):6
str1.lastIndexOf('a',3):0
str1.lastIndexOf('bc'):7
str1.lastIndexOf('ab',4):0
2.判断
true
false
false
true
true
false
true
3.转换
97 98 99100101
a b cde
zxcvbnm
2017
abcde
ABCDE
4.替换、切割、子串、去空格、比较
替换前abcde
替换后abcde
再次替换后abcde
----a--a--a--|--b--b--b--|--c--c--c--|--d--d--dcde
bc
abcd123dcba
0
String类代表了字符串,Java中所有的字符串(如:“abcd”)都由String作为实例来实现。
字符串是常量;它们的值在创建之后不能更改,重新赋值并没有改变而是改变了引用,如果有直接引用,没有则重新创建一个。
String的构造方法:
public class StringTest1 { public static void main(String[] args){ //String的构造方法 //String() String str = new String(); System.out.println(str.length()); //String(byte[] bytes)把字节数组转化为字符串 byte[] bys = {97,98,99,100,101}; String str1 = new String(bys); System.out.println(str1); //String(byte[] bytes, int offset, int length)把字节数组从offset开始length长度转化为字符串 String str2 = new String(bys,1,3); System.out.println(str2); //String(char[] value)把字符数组转化为字符串 char[] ch ={'a','b','c','d','e','1','2','我'}; String str3 = new String(ch); System.out.println(str3); //String(char[] value, int offset, int count)把字符数组从offset开始length长度转化为字符串 String str4 =new String(ch,2,4); System.out.println(str4); //String(String original)把字符串常量值转成字符串 String str6 = new String("abcdefg"); System.out.println(str6); //字符串字面值可以看做是一个字符串对象 最常用的 String str7 = "abcde"; System.out.println(str7); } }
运行的结果:
0
abcde
bcd
abcde12我
cde1
abcdefg
abcde
String的方法:
1.获取
public class StringTest2 { public static void main(String[] args){ String str1 ="abcdefabcd"; //int length():获取字符串的长度 System.out.println("str1.length():"+str1.length()); //char charAt( int index )根据位置获取该位置上某个字符 System.out.println("str1.charAt(3):"+str1.charAt(3)); //int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引 System.out.println("str1.indexOf('a'):"+str1.indexOf('a')); //int indexOf(int ch,int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索 System.out.println("str1.indexOf('b',5):"+str1.indexOf('b',5)); //int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引 System.out.println("str1.indexOf('fab'):"+str1.indexOf("fab")); //int indexOf(String str,int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 System.out.println("str1.indexOf('abc',2):"+str1.indexOf("abc",2)); //int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引 System.out.println("str1.lastIndexOf('a'):"+str1.lastIndexOf('a')); //int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索 System.out.println("str1.lastIndexOf('a',3):"+str1.lastIndexOf('a',3)); //int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引 System.out.println("str1.lastIndexOf('bc'):"+str1.lastIndexOf("bc")); //int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索 System.out.println("str1.lastIndexOf('ab',4):"+str1.lastIndexOf("ab",4)); } }
运行的结果:
str1.length():10
str1.charAt(3):d
str1.indexOf('a'):0
str1.indexOf('b',5):7
str1.indexOf('fab'):5
str1.indexOf('abc',2):6
str1.lastIndexOf('a'):6
str1.lastIndexOf('a',3):0
str1.lastIndexOf('bc'):7
str1.lastIndexOf('ab',4):0
2.判断
public class StringTest3 { public static void main(String[] args){ String str1 = "abcdefg"; String str2 = "cde"; String str3 = new String("fg"); String str4 = "Fg"; //boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 true System.out.println(str1.contains(str2)); //boolean isEmpty()当且仅当 length() 为 0 时返回 true System.out.println(str1.isEmpty()); //boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始 System.out.println(str1.startsWith(str2)); //boolean startsWith(String prefix, int toffset)测试此字符串从指定索引开始的子字符串是否以指定前缀开始 System.out.println(str1.startsWith(str2,2)); //boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束。 System.out.println(str1.endsWith(str3)); //boolean equals(Object anObject)将此字符串与指定的对象比较。 System.out.println(str3.equals(str4)); //boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写。 System.out.println(str3.equalsIgnoreCase(str4)); } }运行的结果:
true
false
false
true
true
false
true
3.转换
public class StringTest4 { public static void main(String[] args){ String str = "abcde"; String str2 = "123"; //byte[] getBytes():把字符串转换为字节数组。 byte[] bys = str.getBytes(); for(int i=0;i<bys.length;i++){ System.out.print(bys[i]+"\t"); } System.out.println(); //char[] toCharArray():把字符串转换为字符数组。 char[] ch = str.toCharArray(); for(int i=0;i<ch.length;i++){ System.out.print(ch[i]+"\t"); } System.out.println(); //注意:String类的valueOf方法可以把任意类型的数据转成字符串。 //static String valueOf(char[] chs):把字符数组转成字符串。 char[] ch1 = {'z','x','c','v','b','n','m'}; System.out.println(String.valueOf(ch1)); //static String valueOf(int i):把int类型的数据转成字符串。 System.out.println(String.valueOf(2017)); //String toLowerCase():把字符串转成小写。 System.out.println(str.toLowerCase()); //String toUpperCase():把字符串转成大写。 System.out.println(str.toUpperCase()); //String concat(String str):把字符串拼接。 System.out.println(str.concat(str2) 4000 ); } }运行的结果:
97 98 99100101
a b cde
zxcvbnm
2017
abcde
ABCDE
4.替换、切割、子串、去空格、比较
public class StringTest5 { public static void main(String[] args) { String str1 = "abcde"; System.out.println("替换前" + str1); // 替换 // String replace(char old,char new)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有oldChar 得到的 str1.replace('a', 'X'); System.out.println("替换后" + str1); // String replace(String old,String new)返回一个新的字符串,它是通过用 newString替换此字符串中出现的所有 oldString 得到的 str1.replace("Xbc", "123"); System.out.println("再次替换后" + str1); // 切割 // String[] split(String regex); 参数为指定的字符串。 String[] str2 = "aaa|bbb|ccc|ddd".split("|"); for (int i = 0; i < str2.length; i++) { System.out.print("--" + str2[i]); } //子串 //String subString(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串 String str3 = str1.substring(2); System.out.println(str3); //String subString(int beginIndex,int endIndex)返回一个新字符串,它是此字符串的一个子字符串 String str4 = str1.substring(1,3); System.out.println(str4); //去空格 //String trim()返回字符串的副本,忽略前导空白和尾部空白 String str5 = "\tabcd123dcba "; System.out.println(str5.trim()); //比较 //int compareTo(String anotherstring)按字典顺序比较两个字符串 char[] ch = {'a','b','c','d','e'}; String str6 = new String(ch); System.out.println(str1.compareTo(str6)); } }运行的结果:
替换前abcde
替换后abcde
再次替换后abcde
----a--a--a--|--b--b--b--|--c--c--c--|--d--d--dcde
bc
abcd123dcba
0
相关文章推荐
- Java学习笔记---8.面向对象编程03-String类的重点应用
- 黑马程序员------java学习笔记之String类
- Java学习笔记之String类
- JAVA学习笔记(4)--String类
- Java学习笔记之Java的String类
- 你不知道的Java学习笔记14--String类
- java学习笔记(String类)
- 黑马程序员--Java基础学习笔记【Object类、String类】
- Java学习笔记——String类及其常见功能(13)
- JAVA学习笔记(5)--String类
- Java学习笔记(String类)
- Java学习笔记(十)String类和StringBuffer类
- java学习笔记24——String类不可变性
- Java学习笔记(二十):关于String类为什么是final
- java学习笔记---String类
- java学习笔记五--String类与String例子
- Java学习笔记_19_String类
- 黑马程序员 java学习笔记——String类(包含StringBuffer和StringBuilder)
- java学习笔记之String类及其练习
- java学习笔记(十)----String类和StringBuffer类