在java语言中将字符串作为对象来处理,可通过java.lang包中的String类创建字符串对象。
一.String类:
- 声明字符串:在JAVA语言中字符串必须包含在一对双引号“”之内。
语法格式: String str;(字符串类型+任意有效的标识符)
声明字符串变量必须经过初始化才能使用,否则编译器会报“变量未初始化错误” - 创建字符串:创建对象要用类的构造方法。String类的常用构造方法如下 String (char a[]):用一个字符串数组a创建String对象:
char a[]={'g','o','o','d'};
String s =new String(a);
等价于:
String s =new String(“good”);
String (char a[],int offset,int length)提取字符数组a中的一部分创建一个字符串对象,offset表示开始截取字符串的位置,length表示截取长度不变。
String (char a[] value)该构造方法可分配一个新的String对象,使其表示字符串数组参数中所有元素连接的结果。
char a[]={'g','o','o','d'};
String s =new String(a);
注意:
String str1,str2;
str1=“We are students”;
str2=“We are students”;
内存示意图如下:
二.连接字符串
-
连接多个字符串:使用+可实现多个连接
java中一句相连的字符串中不能分开在两行写,但分开 需要加“+”。 -
连接替他数据类型:自动转化
注意:当非字符类与字符串相连时,会自动调用toString()方法,将其转化成字符串形式,然后参与连接。
三.获取字符串信息:
- 获取字符串长度:使用String类的length()方法 str.length();
- 字符串查找:indexOf()和lastIndexOf()
indexOf(String s):返回值是搜索的字符或字符串首次出现的位置。从当前字符串的开始位置搜索s的位置,若没有检索到s,则返回值为-1.
String str ="We are good";
int size =str.indexOf("a");
结果为3 依次为 0 1 2 3 .... 空格占一位
lastIndexOf():返回值是搜索的字符或字符串最后一次出现的位置。从 当前字符串的开始位置搜索s的位置,若没有检索到s,则返回值为-1。
- 获取指定索引位置的字符:charAt()方法:
四.字符串操作
- 获取子字符串:subString():
subString(int beginIndex):该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串
String str = “Hello World”;
String substr=str.substring(3);
结果是lo World
subString(int beginIndex,int endIndex):该方法返回的是从字符串某一索引位置开始截取到某一索引位置结束的字符串
String str = “Hello World”;
String substr=str.substring(0,3);
结果是Hel
- 去除空格:str.trim()忽略前导空格和尾部空格
String str = “ Java Class ”;
System.out.println(str.length());
System.out.println(str.trim().length());
结果是 16 11
- 字符串替换:replace()方法
str.replace(char oldchar,char newchar)
String str = “address”;
String newstr=str.replace("a","A");
结果是Address
- 判断字符串开始与结束:startsWith()与endsWith()
String num1="22045612";
String num1="21304578";
boolean b=num1.startsWith("22"); true
boolean b1=num1.endsWith("78"); false
boolean b2=num2.startsWith("22"); false
boolean b3=num2.endsWith("78"); true
- 判断字符串是否相等
String tom = new String("I am a student");
String jerry = new String("I am a student");
boolean b=(tom==jerry);
结果是false
equals()方法:
String s1= new String("abc");
String s2= new String("ABC");
String s3= new String("abc");
boolean b=s1.equals(s3); true
boolean b2=s1.equalsIgnoreCase(s2); true
boolean b3=s1.equals(s2); false