String类常用方法(3)
- public String replace(char oldChar,char newChar):将旧字符替换成新字符串
- public String[] split(String str):根据str做拆分
import java.lang.reflect.Array;
import java.util.Arrays;
public class Demo01 {
public static void main(String[] args) {
String name="hello";//“hello“常量存储在字符串池中
name="更生";//并没有去改变hello的值,而是在字符串池重新开辟了一片空间“更生”,然后name从指向hello变成指向更生
String name2="更生";//这里是共享的
System.out.println(name==name2);//true
//字符串的另一种创建方式
String str=new String("java");//会指向堆里的java对象,事实上两个会合并到一个,所以用这种方式会浪费空间
String str2 = new String("java");
System.out.println(str==str2);//两个地址是不一样的
System.out.println(str.equals(str2));//这时候比的是数据
System.out.println("======================字符串方法的使用1===========================");
//字符串方法的使用
//1.length();返回字符串的长度
//2.charAt(int index):返回某个位置的字符
//3.contains(String str):判断是否包含某个字符串
String content="java 是世界上最好的语言,java真香";//空格也算一个字符
System.out.println(content.length());
System.out.println(content.charAt(0));//打印第一个字符
System.out.println(content.charAt(content.length()-1));//打印最后一个字符
System.out.println(content.charAt(content.length()-2));//打印倒数第二个字符
System.out.println(content.contains("java"));
System.out.println(content.contains("php"));
System.out.println(content.contains("jv"));//被隔开的字符串是无法检测到的
System.out.println(content.contains("j"+"v"));//即使这样写也是不行的
System.out.println("======================字符串方法的使用2===========================");
//字符串的方法使用
//4.toCharArray();返回字符串对应的数组
//5.indexOf();返回子字符串首次出现的位置
//6.lastIndexOf();返回字符串最后一次出现的位置
System.out.println(content);
System.out.println(content.toCharArray());//Q:输出为什么和上面是一样的
System.out.println(Arrays.toString(content.toCharArray()));//打印出来的是数组本身
System.out.println(content.indexOf("java"));//只会找第一个出现的
System.out.println(content.indexOf("java",4));//从第四个字符开始找java,输出是15,因为是从0开始计的
System.out.println(content.lastIndexOf("java"));//找的是最后一个,但还是从0开始计来打印出他的序数
System.out.println("======================字符串方法的使用3===========================");
//7.trim();去掉字符串前后的空格
//8.toUpperCase();把小写转成大写 toLowerCase();把大写转成小写
//9.endWith(str);判断是否以str结尾 startWith(str);判断是否以str开头
String content2=" hello world ";
System.out.println(content2.trim());//前后空格没有了,但中间还会有
System.out.println(content2.toUpperCases());
System.out.println(content2.toLowerCase());
String filename="hello.java";
System.out.println(filename.endsWith(".java"));//存疑:到底是end还是ends
System.out.println(filename.startsWith("hello"));
System.out.println("======================字符串方法的使用4===========================");
//10.replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
//11.split();对字符串进行拆分
System.out.println(content.replace("java","php"));
String say="java is the best programing language,java xiang";
//String[] arr=say.split(" ");//可以发现空格被拆分开来了,但是逗号并未拆
//String[] arr=say.split("[ ,]");//这样就表示可以用空格或逗号拆分开,但是如果多写了空格或逗号会把多余的也当字符做拆分处理
String[] arr=say.split("[ ,]+");//加个+表示空格或逗号可以出现一个或多个
System.out.println(arr.length);
for(String string:arr){
System.out.println(string);
}
}
}
输出结果为
php 是世界上最好的语言,php真香
8
java
is
the
best
programing
language
java
xiang
“[ ,]+” 这样就表示可以用空格或逗号拆分开,并可以连续出现一个或多个
import java.lang.reflect.Array;
import java.util.Arrays;
public class Demo01 {
public static void main(String[] args) {
String name="hello";//“hello“常量存储在字符串池中
name="更生";//并没有去改变hello的值,而是在字符串池重新开辟了一片空间“更生”,然后name从指向hello变成指向更生
String name2="更生";//这里是共享的
System.out.println(name==name2);//true
//字符串的另一种创建方式
String str=new String("java");//会指向堆里的java对象,事实上两个会合并到一个,所以用这种方式会浪费空间
String str2 = new String("java");
System.out.println(str==str2);//两个地址是不一样的
System.out.println(str.equals(str2));//这时候比的是数据
System.out.println("======================字符串方法的使用1===========================");
//字符串方法的使用
//1.length();返回字符串的长度
//2.charAt(int index):返回某个位置的字符
//3.contains(String str):判断是否包含某个字符串
String content="java 是世界上最好的语言,java真香";//空格也算一个字符
System.out.println(content.length());
System.out.println(content.charAt(0));//打印第一个字符
System.out.println(content.charAt(content.length()-1));//打印最后一个字符
System.out.println(content.charAt(content.length()-2));//打印倒数第二个字符
System.out.println(content.contains("java"));
System.out.println(content.contains("php"));
System.out.println(content.contains("jv"));//被隔开的字符串是无法检测到的
System.out.println(content.contains("j"+"v"));//即使这样写也是不行的
System.out.println("======================字符串方法的使用2===========================");
//字符串的方法使用
//4.toCharArray();返回字符串对应的数组
//5.indexOf();返回子字符串首次出现的位置
//6.lastIndexOf();返回字符串最后一次出现的位置
System.out.println(content);
System.out.println(content.toCharArray());//Q:输出为什么和上面是一样的
System.out.println(Arrays.toString(content.toCharArray()));//打印出来的是数组本身
System.out.println(content.indexOf("java"));//只会找第一个出现的
System.out.println(content.indexOf("java",4));//从第四个字符开始找java,输出是15,因为是从0开始计的
System.out.println(content.lastIndexOf("java"));//找的是最后一个,但还是从0开始计来打印出他的序数
System.out.println("======================字符串方法的使用3===========================");
//7.trim();去掉字符串前后的空格
//8.toUpperCase();把小写转成大写 toLowerCase();把大写转成小写
//9.endWith(str);判断是否以str结尾 startWith(str);判断是否以str开头
String content2=" hello world ";
System.out.println(content2.trim());//前后空格没有了,但中间还会有
System.out.println(content2.toUpperCases());
System.out.println(content2.toLowerCase());
String filename="hello.java";
System.out.println(filename.endsWith(".java"));//存疑:到底是end还是ends
System.out.println(filename.startsWith("hello"));
System.out.println("======================字符串方法的使用4===========================");
//10.replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
//11.split();对字符串进行拆分
System.out.println(content.replace("java","php"));
String say="java is the best programing language,java xiang";
String[] arr=say.split(" ");//可以发现空格被拆分开来了,但是逗号并未拆
//String[] arr=say.split("[ ,]");//这样就表示可以用空格或逗号拆分开,但是如果多写了空格或逗号会把多余的也当字符做拆分处理
//String[] arr=say.split("[ ,]+");//加个+表示空格或逗号可以出现一个或多个
System.out.println(arr.length);
for(String string:arr){
System.out.println(string);
}
System.out.println("======================补充===========================");
//补充两个方法equals、compareTo();
//equals:比较两个字符串值是否相同
//compareTo:比较两个字符串的大小(比较的是在编码表里的位置)
String s1="hello";
String s2="HELLO";
System.out.println(s1.equals(s2));//false
System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写的比较
String s3="abc";//a:97
String s4="xyz";//x:120
System.out.println(s3.compareTo(s4));//他会一个字符一个字符比较,先比a与x,若是能比出结果,后面就不比了,若相等,则比较第二个,以此类推。此例中a97,x120,97-120=-23,所以结果为-23,即s3的位置减去s4的位置 (也可以比较中文)
String s5="abc";
String s6="abcxyz";
System.out.println(s5.compareTo(s6));//这时候比较的就不是位置了,而是长度,s5的长度为3,s6的长度为6,所以输出结果为3-6=-3。要是两个一样,比如都是“abc”,那么得出结果就为3-3=0
}
}
输出结果为
false
true
-23
-3
compareTo:比较两个字符串在编码表里的位置,且为一个一个比较知道得出结果,会用前-后作为结果输出。特殊情况下会比较长度
String类案例演示
- 需求:
- 已知String str=“this is a text”
- 将str中的单词单独获取出来
- 将str中的text替换为practice
- 在text前面插入一个easy
- 将每个单词的首字母改为大写
- 已知String str=“this is a text”
/*
已知String str=“this is a text”
1. 将str中的单词单独获取出来
2. 将str中的text替换为practice
3. 在text前面插入一个easy
4. 将每个单词的首字母改为大写
*/
public class Demo03 {
public static void main(String[] args) {
String str = "this is a text";
//1.将str中的单词单独获取出来
String[]arr=str.split(" ");
System.out.println("=============将str中的单词单独提取出来===============");
for(String s:arr){
System.out.println(s);
}
//2.将str中的text替换为practice
System.out.println("=============将str中的text替换为practice===========");
String str2=str.replace("text","practice");
System.out.println(str2);
//3.在text前面插入一个easy
System.out.println("=============在text前面插入一个easy=================");
String str3=str.replace("text","easy text");
System.out.println(str3);
//4.将每个单词的首字母改为大写
System.out.println("=============将每个单词的首字母改为大写===============");
for (int i = 0; i < arr.length; i++) {
char first=arr[i].charAt(0);
char upperfirst=Character.toUpperCase(first);
String news=upperfirst+arr[i].substring(1);
System.out.println(news);
}
}
}
输出结果为
=============将str中的单词单独提取出来===============
this
is
a
text
=============将str中的text替换为practice===========
this is a practice
=============在text前面插入一个easy=================
this is a easy text
=============将每个单词的首字母改为大写===============
This
Is
A
Text