您的位置:首页 > 编程语言 > Java开发

Java学习笔记:String类

2017-04-20 19:25 225 查看
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)
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 string 学习笔记