// 创建字符串的常见3+1种方式。
// 1.使用空参构造
String str = new String();
str ="使用空参构造";
System.out.println(str);
System.out.println("===================================");
// 2.根据字符数组创建字符串
char [] ch = new char[3];
char [] ch1 ={'a','b','c'};
ch[0]='a';
ch[1]='b';
ch[2]='c';
// 把字符串数组放在String后面的括号里,可以根据字符数组创建字符串了
String str1 = new String(ch);
String str2 = new String(ch1);
System.out.println(str1+str2);
System.out.println("===================================");
// 3.根据字节数组创建字符串
byte [] by ={97,98,99};
//把字节数组放在String后面的括号里,可以根据字节数组创建字符串了
String str3 = new String(by);
System.out.println(str3);
System.out.println("===================================");
// 4.直接创建
String str4 = "Hello";
System.out.println(str4);
System.out.println("===================================");
/*
字符串的比较:
1.对于引用类型来说,==是进行[地址值]的比较。
*/
//直接创建的两个一样的字符串
String str01 = "abc";
String str02 = "abc";
//用字符数组创建的两个一样的数组
char[] charArray = {'a','b','c'};
String str03 = new String(charArray);
char[] charArray1 = {'a','b','c'};
String str04 = new String(charArray);
//进行比较:
System.out.println(str01 == str02); // true,两个一样的字符串的地址是一样的
System.out.println(str01 == str03); // false 直接创建的字符串和用字符数组创建字符串地址不一样所以false
System.out.println(str02 == str03); // false
System.out.println(str03 == str04); // false
System.out.println("===================================");
//==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用这个方法:
//public boolean equals(Object obj):
//参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。
System.out.println(str01.equals(str02));// true
System.out.println(str01.equals(str03));// true
//看看是否忽略大小写,进行内容比较。
String a= "ABC";
System.out.println(a.equals(str01));//false
System.out.println(a.equals(str03));//false
//两个都是false 所以用equals比较字符串是严格分大小写的
System.out.println("===================================");
/*
String当中与获取相关的常用方法有:
1.public int length():获取字符串当中含有的字符个数,拿到字符串长度。
2.public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
3.public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始。)
4.public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。
*/
//1.获取字符串当中含有的字符个数,拿到字符串长度。
String s = "asdfghjkl";
System.out.println("s这个字符串的长度为:"+s.length());
System.out.println("===================================");
//2.拼接字符串。
String z1 = "hello";
String z2 = "world";
String z3 = z1.concat(z2);
System.out.println(z1);//hello 字符串1没有变
System.out.println(z2);//world 字符串2没有变
System.out.println(z3);//helloworld 把1和2拼接起来成为了一个新的字符串3
System.out.println("===================================");
//获取指定索引位置的单个字符。(索引从0开始。)
String j = "abcdef";
//先定义一个char类型的变量来接受字符串索引位置的字符
char j1 = j.charAt(1);
System.out.println(j1);
System.out.println("===================================");
//4.查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。
String c = "asdfffasd";
int i = c.indexOf("f");
int i1 = c.indexOf("asd");
int i2 = c.indexOf("asdfg");
System.out.println(i);//3 索引3
System.out.println(i1);//0 索引0
System.out.println(i2);//-1 没有这个字符串就会返回-1
System.out.println("===================================");
/*
字符串的截取方法:
1.public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。
2.public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串。
备注:[begin,end),包含左边,不包含右边。
*/
//1.截取从参数位置一直到字符串末尾,返回新字符串。
String jq = "helloworld";
//创建一个字符串来接受截取出来的字符串
String jq1= jq.substring(5);
System.out.println(jq);//helloworld 原封不动
System.out.println(jq1);//world 截取从参数位置一直到字符串末尾,返回到新字符串
System.out.println("===================================");
//2.截取从begin开始,一直到end结束,中间的字符串
String jq2= jq.substring(4,7);
System.out.println(jq);//helloworld 原封不动
System.out.println(jq2);//owo 截取从begin开始,一直到end结束,中间的字符串。
System.out.println("===================================");
/* 下面这种写法,字符串的内容仍然是没有改变的
下面有两个字符串:"Hello","Java"
strA当中保存的是地址值。
本来地址值是Hello的0x666,
后来地址值变成了Java的0x999 */
String strA = "Hello";
System.out.println(strA); //Hello
strA = "Java";
System.out.println(strA); // Java
/*
String当中与转换相关的常用方法有:
1.public char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
2.public byte[] getBytes():获得当前字符串底层的字节数组。
3.public String replace(CharSequence oldString, CharSequence newString):
将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。
备注:CharSequence意思就是说可以接受字符串类型。`
*/
//1.将当前字符串拆分成为字符数组作为返回值。
char[]c1 = "hello".toCharArray();
System.out.println(c1[0]);//h
System.out.println(c1.length);//5
System.out.println("===================================");
//2.获得当前字符串底层的字节数组。
String c2 = "hello";
byte[]c3 = c2.getBytes();//字符串低层是byte数组,不能用byte之外的类型
for (int k = 0; k <c3.length ; k++) {
System.out.print(c3[k]+",");//104,101,108,108,111,
}
System.out.println();
System.out.println("===================================");
//3.将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串,字符串的内容替换。
String g = "你妈的,你会不会打游戏";
String g1 = g.replace("你妈","**");
System.out.println(g);//你妈的,你会不会打游戏
System.out.println(g1);//**的,你会不会打游戏
System.out.println("===================================");
/*
分割字符串的方法:
public String[] split(String regex):按照参数的规则,将字符串切分成为若干部分。
*/
String qf = "aaa,vvv,bbb";
String []qf1 = qf.split(",");
for (int k = 0; k <qf1.length ; k++) {
System.out.println(qf1[k]);
}
System.out.println("===================================");
/*注意事项:
split方法的参数其实是一个“正则表达式”,今后学习。
今天要注意:如果按照英文句点“.”进行切分,必须写"\\."(两个反斜杠)
*/
String qf0 = "aaa.bbb.ccc";
String []qf01 = qf0.split("\\.");
for (int k = 0; k <qf01.length ; k++) {
System.out.println(qf01[k]);
}
String常用类
最新推荐文章于 2024-08-23 15:54:50 发布