创建字符串对象
//创建一个空字符串对象
String aStr = "";
String bStr = new String();
String cStr = new String("");
//创建一个字符串对象
String dStr = "YJH";
String eStr = new String("YJH");
空字符串并不是说它的值等于null(空值)。空字符串和null(空值)是两个概念。
空字符串是由空的""符号定义的,它是实例化之后的字符串对象,只是不包含任何字符。
连接字符串
如果表达式中包含多个运算符"+",并且存在各种数据类型参与运算,则按照运算符"+"从左到右进行运算,并且Java会根据运算符"+"两边的操作元类型来决定是进行算数运算还是字符串连接运算
public class String01 {
public static void main(String[] args) {
System.out.println("YJH"+1234); //YJH1234
System.out.println("10"+7.6F); //107.6
System.out.println("This is "+true); //This is true
System.out.println("YJH"+"Abc"); //YJHAbc
//与引用类型连接
System.out.println("路径:"+(new java.io.File("C:/text.txt")));//路径:C:\text.txt
System.out.println(100+6.4+"MR"); //106.4MR
System.out.println("MR"+100+64); //MR10064
}
}
字符串操作
1.比较字符串
String类中包含几个用于比较字符串的方法,下面分别对它们进行介绍。
(1)equals()方法
String类的equals()方法用于比较两个字符串是否相等。由于字符串是对象类型,因此不能简单地进行“==”判断两个字符串是否相等。
String str = "A";
boolean b = str.equals("a");
System.out.println(b); //false
equals()方法比较两个字符串时会区分字母地大小写。
equals()方法比较地时字符串对象的内容,而操作符“==”比较的时两个对象的内存地址(即使内容相同,不同对象的内存地址也不相同),所以在比较两个字符串是否相等时,不能使用“==”。
(2)equalsIgnoreCase()
比较字符串,字符串不区分大小写
String str = "A";
boolean b = str.equalsIgnoreCase("a");
System.out.println(b); //true
(3)startsWith()和endsWith()
判断字符串是否以指定字符串开头或结束
String str = "ABCDE";
boolean a = str.startsWith("a");//false
boolean b = str.endsWith("DE"); //true
startsWith()方法还有一个重载方法,用于判断字符串从直定索引开始是否为指定的字符串。
String str = "ABCDE";
boolean b = str.startsWith("CD", 2);//true
字符串的索引从0开始。
(4)comoareTo()方法
该方法用于判断一个字符串是大于、等于还是小于另一个字符串。
判断字符串大小的依据是它们在字典中的顺序。
compareTo()方法的入口参数为被比较的字符串对象,该方法的返回值为int型。
如果两个字符串相等,则返回0;
如果大于字符串str,则返回一个正数;
如果小于字符串str,则返回一个负数。
String aStr = "A";
String bStr = "B";
String dStr = "D";
String b2Str = "B";
System.out.println(bStr.compareTo(aStr));//1
System.out.println(bStr.compareTo(b2Str));//0
System.out.println(bStr.compareTo(dStr));//-2
2.获取字符串的长度
字符串是一个对象,这个对象中包含length()属性。该属性表示该字符串的长度,使用String类中的length()方法可以获取其值。
String str = "abcdef";
int i = str.length();
System.out.println(i);//6
3.字符串的大小写转换
String类提供了用于实现字符串大小写转换的方法,toLowCase()和toUpperCase()。
String str = "AbCdEfGh";
String str1 = str.toLowerCase();
String str2 = str.toUpperCase();
System.out.println(str1);//abcdefgh
System.out.println(str2);//ABCDEFGH
4.查找字符串
String类还提供了查找字符串的方法。这两个方法允许查找第一次出现和最后一次出现某字符串。
String str = "shandongnongyedaxue";
int i = str.indexOf("a");//2
int j = str.indexOf("d", 5);//14
int k = str.lastIndexOf("g");//11
System.out.println(i);
System.out.println(j);
System.out.println(k);
5.去掉字符串的首位空格
去掉字符串的首位空格得到一个新的字符串。
String str1 = " abc ";
System.out.println(str1.length());//7
String str2 = str1.trim();
System.out.println(str2.length());//3
6.替换字符串中的字符或子字符串
替换单个字符串、替换子字符串、替换第一个子字符串
String str = "NBA_NBA_NBA";
System.out.println(str.replace('N', 'M'));//MBA_MBA_MBA
System.out.println(str.replaceAll("NB", "AA"));//AAA_AAA_AAA
System.out.println(str.replaceFirst("NB", "AA"));//AAA_NBA_NBA
7.分割字符串
。。。。。。
对象的字符串表示
所有的类都默认继承Object类,Object类位于java.lang包中。在Object类中有一个public String toString()方法,这个方法用于获取对象的字符串表示。
调用toString()方法返回的字符串的一般形式为:包名.类名@内存的引用地址