Java常用类:String类
Java常用类:String类
String
-
字符串是常量,创建之后不可改变
-
字符串字面值存储在字符串池中,可以共享
-
String s = "Hello";
产生一个对象,字符串池中储存 -
String s = new String("Hello");
产生两个对象,堆和字符串池中各存储一个 -
示例
public class Demo01 { public static void main(String[] args) { String name = "Hello";//"Hello"常量存储在字符串池中 //"Dt"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间 //name常量指向"Hello"变成指向"Dt" name = "Dt"; String name1 = "Dt";//在字符串池中寻找"Dt",存在就直接使用,不存在就开辟一个空间来存储 //字符串的另一种创建方式:new String(); String str = new String("ab");//产生两个对象,堆和字符串池中各存储一个,堆里的对象指向字符串池的对象 String str2 = new String("ab"); System.out.println(str == str2);//false System.out.println(str.equals(str2));//true //字符串比较用equals()而不是==,==是比较字符串的地址 } }
String类常用方法
public int length();
返回字符串的长度public char charAt(int index);
根据下标获取字符public boolean contains(String str);
判断当前字符中是否含strpublic char[] toCharArray();
将字符串转换成数组public int indexOf(String str);
寻找 str 在当前字符串首次出现的下标,存在,则返回下标;不存在,则返回-1public int lastIndexOf(String str);
寻找 str 在当前字符串中最后一次出现的下标索引public String trim();
去掉字符串前后的空格public String toUpperCase();
将小写转换成大写public String toLowerCase();
将大写转换成小写public boolean starWith(String str);
判断字符串是否以 str 开头public boolean endWith(String str);
判断字符串是否以 str 结尾public String replace(char oldChar,char newChar);
将旧字符替换成新字符public String[] split(String str);
根据 str 做拆分,拆分成数组public boolean equals(Object anObject);
将此字符串与指定的对象比较public boolean equalsIgnoreCase(String anotherString);
将此 String 与另一个 String 比较,不考虑大小写public int compareTo(String anotherString);
按字典顺序比较两个字符串publicint compareToIgnoreCase(String str);
按字典顺序比较两个字符串,不考虑大小写public String substring(int beginIndex);
截取指定位置的字符串
示例:
import java.util.Arrays;
public class Demo02 {
public static void main(String[] args) {
System.out.println("===========1============");
//字符串方法的使用
//length();返回字符串的长度
//charAt(int index);返回指定位置的字符
//contains(String str);判断是否包含某个子字符串
String text = "Java永远滴神";
System.out.println(text.length());//返回text字符串长度
System.out.println(text.charAt(7));//返回下标位置为7的字符
System.out.println(text.contains("Java"));//判断text字符串是否包含"Java"
System.out.println(text.contains("C++"));//判断text字符串是否包含"C++"
System.out.println("===========2============");
//toCharArray();返回字符串对应的数组
//indexOf(String str);返回str在字符串首次出现的位置
//lastIndexOf(String str);返回str在字符串最后出现的位置
System.out.println(Arrays.toString(text.toCharArray()));//Arrays.toString();是数组的打印方法
System.out.println(text.indexOf("a"));//寻找字符串"a"在当前字符串首次出现的位置
System.out.println(text.indexOf("a",2));//寻找字符串"a"在当前字符串的下标为2开始首次出现的位置
System.out.println(text.lastIndexOf("a"));//寻找字符串"a"在当前字符串最后出现的位置
System.out.println("===========3============");
//trim();去掉字符串前后的空格
//toUpperCase();把小写转换成大写
//toLowerCase();把大写转换成小写
//starWith(String str);判断字符串是否以str开头
//endWith(String str);判断字符串是否以str结尾
String text1 = " Hello World ";
System.out.println(text1.trim());//去掉字符串前后的空格
System.out.println(text1.toUpperCase());//把text1的小写转换成大写
System.out.println(text1.toLowerCase());//把text1的大写转换成小写
System.out.println(text.startsWith("Java"));//判断text字符串是否以"Java"开头
System.out.println(text.endsWith("永远滴神"));//判断text字符串是否以"永远滴神"结尾
System.out.println("===========4============");
//replace(char oldChar,char newChar);用新的字符或字符串来替换旧的字符或字符串
//split(String str);根据str对当前字符串进行拆分成数组
System.out.println(text1.replace("World","Java World"));//将text1中的"World"替换成"Java Word"
System.out.println(Arrays.toString(text.split("永远")));//根据"永远"将text拆分成数组
//split();进阶
String str = "Java is the best programing language,java nice";
System.out.println(Arrays.toString(str.split("[ ,]+")));
//split("[ ,]+")的意思是根据" "或","来拆分成数组,+是指可以是多个" "或者",",该表示方式来自正则表达式
System.out.println("===========5============");
//equals();判断两个对象内容是否相同
//equalsIgnoreCase();判断两个对象内容是否相同(忽略大小写)
//compareTo();比较两个字符串的大小
//compareToIgnoreCase();比较两个字符串的大小(忽略大小写)
//substring(int beginIndex);从指定下标开始截取字符串
String s1 = "hello";
String s2 = "HELLO";
System.out.println(s1.equals(s2));//比较s1和s2的内容
System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写的比较
System.out.println(s1.compareTo(s2));//按大小比较s1,s2
System.out.println(s1.compareToIgnoreCase(s2));//忽略大小写的比较
String s3 = "helloworld";//s1和s3前面一样,s3比s1多了"world"
System.out.println(s1.compareTo(s3));//这时候compareTo();方法比的是长度
String s4 = "HELLOWORLD";
System.out.println(s1.compareToIgnoreCase(s4));////这时候compareToIgnoreCase();方法比的也是长度
System.out.println(s1.substring(1));//从下标为1开始截取字符串
System.out.println(s1.substring(1,3));//截取下标为1到下标为3的字符串
}
}
输出
===========1============
8
神
true
false
===========2============
[J, a, v, a, 永, 远, 滴, 神]
1
3
3
===========3============
Hello World
HELLO WORLD
hello world
true
true
===========4============
Hello Java World
[Java, 滴神]
[Java, is, the, best, programing, language, java, nice]
===========5============
false
true
32
0
-5
-5
ello
el
案例演示
-
已知
String str = "this is a text";
- 需求:
- 将 str 中的单词单独获取出来
- 将 str 中的 text 替换为 practice
- 在 text 前面插入一个 easy
- 将每个单词的首字母改为大写
- 需求:
-
示例:
import java.util.Arrays; public class Demo03 { public static void main(String[] args) { String str = "this is a text"; String[] array = str.split(" ");//以空格分割成数组 System.out.println(Arrays.toString(array)); String str1 = str.replace("text","practice");//"text"替换成"practice" System.out.println(str1); String str2 = str.replace("text","easy text");//"text"前面加上"easy" System.out.println(str2); for (int i = 0; i < array.length; i++) { //charAt(0);获取首字母,然后通过Character.toUpperCase();把字母变成大写 char upperfrist = Character.toUpperCase(array[i].charAt(0)); //再用substring();方法截取字符串和大写首字母拼接 array[i] = upperfrist+array[i].substring(1); } System.out.println(Arrays.toString(array)); } }
输出
[this, is, a, text] this is a practice this is a easy text [This, Is, A, Text]