一:String:用于操作字符串的类,一旦被初始化就不会改变。下面是String类的常用方法。
1.获取
1.1:字符串中包含的字符数,也就是字符串的长度。
int length():获取长度
1.2:根据位置获取位置上某个字符。
char charAt(int index)
1.3:根据字符获取该字符在字符串中的位置。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。
1.4:int lastIndexOf(String str):反向索引。
2.判断
2.1:字符串中是否包含某一个子串。
boolean contains(str);
特殊之处:indexOf(str):可以索引str第一次出现为止,如果返回-1,表示该str不在字符串中存在。
所以,也可以用于对指定判断是否包含。
if(str.indexOf("a")!=1)
而且该方法既可以判断,也可以获取出现的位置。
2.2:字符串中是否有内容。
boolean isEmpty():原理就是判断长度是否为0。
2.3:字符串是否以指定内容开头。
boolean startsWith(str);
2.4:字符串是否以指定内容结尾。
boolean endsWith(str);
2.5:判断字符内容是否相同,复写了object类中的equals方法。
boolean equals(str);
2.6:判断内容是否相同,并忽略大小写。
boolean.equalsIgnorecase();
3.转换
3.1:将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data,int offset,int count);
static String valueOf(char[]);
3.2:将字符串转成字符组
char[] tocharArray();
3.3:将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串
3.4:将字符串转成字节数组。
byte[] getBytes()
3.5:将基本数据类型转成字符串,
static String valueOf(int)
static String valueOf(double)
// 3+"" 与 String.valueOf(3)的值是一样的
特殊:字符串和字节数组在转换过程中,是可以指定编码的。
4.替换
String replace(oldchar,newchar);
5.切割
String[] split(regex);
6>子串。获取字符串中的而一部分
String subString(begin);
String subString(begin,end);
7.转换,去除空格,比较。
7.1:将字符串转成大写或小写
String toUpperCsae() 大转小
String toLowerCsae() 小转大
7.2:将字符串两端的多个空格去除
String trim();
7.3:对两个字符串进行自然顺序的比较
int compareTo(string);
案例:
package test.stringdemo;
public class StringDemo {
public static void main(String[] args) {
/*String s="abc";
String s2=new String("abc");
System.out.println(s==s2);
System.out.println(s.equals(s2));
String s3=new String();
s3="abc";
System.out.println(s2.equals(s3));
System.out.println(s2==s3);
String s4="abc";
System.out.println(s4==s);*/
/*
* s1在内存中只有一个对象
* s2在内存中只有二个对象
*/
method_1();
method_is();
method_tihuan();
}
//查找
public static void method_1(){
String s="absdzcasd";
//获取字符串的长度
sop(s.length());
//根据索引获取字符
sop(s.charAt(4));
//查找字符在字符串中第一次出现的位置
sop(s.indexOf("a"));
//查找字符在字符串中最后一次出现的位置
sop(s.lastIndexOf("d"));
//根据ASSII码获取那个字符在字符串的位置
sop(s.indexOf(98));
sop(s.indexOf(97, 3));
}
//判断
public static void method_is(){
String s="vczbhd";
//判断字符串中是否某个字符串
sop(s.contains("v"));
//判断字符串是否有内容,也就是说是否长度为0
sop(s.isEmpty());
//判断字符串是否以指定内容开头
sop(s.startsWith("vc"));
//判断字符串是否以指定内容结束
sop(s.endsWith("zhd"));
//判断字符串的内容是否相同,区分大小写
String s1=new String("Vczbhd");
sop(s.equals(s1));
//判断字符串的内容是否相同,忽略大小写
sop(s.equalsIgnoreCase(s1));
}
public static void method_tihuan(){
//将字符串中的某个字符替换成新的字符串
String s="aj,gh,g";
String s2=s.replace('a', 'b');//如果要替换的字符没有,则保持原样.
sop("s="+s);
sop("s2="+s2);
//将字符串分割,分割之后就变成了字符串数组
/* String[] s4=s.split(",");
for (int i = 0; i < s4.length; i++) {
System.out.println(s4[i]);
}*/
//获取字符串中的一部分
String s5=s.substring(2);//从指定位置到字符串结尾处
String s6=s.substring(1, 3);//包含头,不包含尾.
sop(s5);
sop(s6);
}
public static void sop(Object obj){
System.out.println(obj);
}
}