Java学习笔记:String类

来源:互联网 发布:淘宝达人推广费多少钱 编辑:程序博客网 时间:2024/05/16 01:16

String类:

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));}}
运行的结果:
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
1 0
原创粉丝点击