1)常见的字符串方法:
1.获取:
1.1 获取字符串长度
int:length()
1.2 根据位置获取位置上的某个字符
char: charAt(int index)
1.3 根据字符获取该字符在字符串中的位置
int: indexOf(int ch) 返回ch在字符串中第一次出现的位置,ch ASCll码值
int: indexof(int ch, int fromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置
int: indexOf(String str) 返回str在字符串中第一次出现的位置
int: indexof(String str, int fromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置
代码示例:
public class StringMethodTest {
public static void main(String[] args) {
String str = "abcfrsfhgcdefg";
sop(str.length()); //获取字符串的长度
sop(str.charAt(2)); //根据位置获获取字符
sop(str.indexOf('c')); //获取字符第一次出现的位置
sop(str.indexOf('f',5)); //从指定位置开始获取字符第一次出现的位置
}
public static void sop(Object o){
System.out.println(o);
}
}
运行结果:
14
c
2
6
2.判断:
2.1 字符串中是否包含某一个字符串
boolean: contains(String str);
特殊写法:indexOf(str) 可以索引str第一次出现的位置,如果返回-1,表示str不存在
if(str.indexOf("aa") != -1) 该方法既可以判断,又可以获取出现的位置
2.2 字符串中是否有内容
boolean: isEmpty(String str); 原理是判断长度是否为0
2.3 字符串中是否以指定内容开头
boolean: startWith(String str);
2.4 字符串是否是以指定内容结尾
boolean: endWith(String atr);
2.5 判断字符串的内容是否相同
boolean: equals(String str);
2.6 判断内容是否相同,并忽略大写小
boolean: equalsIgnoreCase(String str);
代码示例:
public class StringMethodTest {
public static void main(String[] args) {
String str = "ArrayDemo.java";
sop(str.startsWith("Array")); //判断字符串是否以指定内容开头
sop(str.endsWith(".java")); //判断字符串是否以指定内容结尾
sop(str.contains("Array")); //判断字符串是否包含指定内容
sop(str.isEmpty()); //判断字符串是否为空,为空返回true
String str1 = "abc";
sop(str1.equals("abc")); //判断字符串的内容是否相同
sop(str1.equalsIgnoreCase("AbC")); //判断内容是否相同,并忽略大写小
}
public static void sop(Object o){
System.out.println(o);
}
}
运行结果:
true
true
true
false
true
true
3. 字符串的转换
3.1 将字符串数组转换成字符串
构造函数写法:new String(char[]);
new String(char[],offset,count);
静态方法写法:static String.copyValueOf(char[]);
static String.copyValueOf(char[] ,int offset,int count);
sttaic String.valueOf(char[]);
3.2 将字符串转成字符数组
char[]: toCharArray();
3.3 将字节数组转成字符串
new String(byte[]);
new String(byte[],offset,count); 将字节数组中一部分转成字符串
3.4 将字符串转成字节数组
byte[]: getByte();
3.5 将基本数据类型转成字符串
static String.valueOf(type par);
或者:String a = 3+""; //也可以转换成字符串
字符串和字节数组在转换的过程中,可以指定编码表。
代码示例:
ublic class StringTransform {
public static void sop(Object o){
System.out.println(o);
}
public static void main(String[] args) {
//1.将字符数组转换成字符串
char[] chs = {'h','a','p','p','y','m','e'};
String strChs = new String(chs);
//将一部分字符数组转成字符串
String strChs1 = new String(chs,2,5);
sop(strChs);
sop(strChs1);
//静态的方式转换
String staticStr1 = String.copyValueOf(chs);
String staticStr2 = String.copyValueOf(chs,2,5);
String staticStr3 = String.valueOf(chs);
sop(staticStr1);
sop(staticStr2);
sop(staticStr3);
sop("---------------------------");
//2.将字符串转换成字符数组:
String hi = "helloword";
char[] chhi = hi.toCharArray();
for(int i = 0; i < chhi.length; i++){
sop("chhi--" + chhi[i]);
}
sop("----------------------------");
//3.将字节数组转成字符串
byte[] bys = {'a','d','f','h','p','s','g'};
String strBys = new String(bys);
sop(strBys);
sop("----------------------------");
//4.将字符串转换成字节数组:
String nam = "jackfrank";
byte[] bn = nam.getBytes();
for(int i = 0; i < bn.length; i++){
sop("bn--" + bn[i]);
}
//5.将基本数据类型转换成字符串
sop("---------------------------------");
int a = 10;
double b = 11.5;
String c = String.valueOf(a);
String d = String.valueOf(b);
String e = 5 +""; //也可以转
sop(c);
sop(d);
}
}
4.字符串的替换
4.1 String: replace(oldChar ,newChar);//把字符串中某个字符替换掉
例:
String str = "abc";
String str2 = str.replace("a","b"); //字符串一旦被初始化,就不会被改变,这里返回的的是一个新的字符串
4.2 String: replace(target,replacement); //替换多个字符
例:
String str = "hello java";
String newStr = str.replace("hello","hi");
System.out.println(newStr); //结果是 hi java
5.字符串拆分
String[]: split(regex) ; 根据给定正则表达式的匹配拆分此字符串,返回字符串数组,regex为正则表达式
例:
String s = "zhangsan,lisi,wangwu";
String[] arr = s.split(",");
返回字符串数组:{ "zhangsna","lisi","wangwu" }
更多查询API文档
6.获取子串,获取字符串中的一部分
String: substring(int begin) //从指定位置开始到结尾
String: substring(int begin,int end) //从自定位置开始到指定位置结尾,不包含结尾
例:
String str = "abcdefg";
String newStr = str.substring(2);//从第二位开始到结尾截取
String newStr1 = str.substring(2,4);//从第二位开始到第四位截取,不包含第四位
7.字符串大小写转换、去除空格、比较
7.1 转换大小写
String: toUpperCase(); //转换成大写
String: toLowerCase(); //转换成小写
例:
String s = "abc";
System.out.println(s.toUpperCase()); //结果是ABC
7.2 去除字符串两端的空格
String: trim();
例:
String s = " zhang san ";
System.out.println(s.trim()); //结果 "zhan san"
7.3 按字典顺序比较两个字符串
int: compareTo(String str);
例:
String s4 = "abc";
String s5 = "abe";
System.out.println(s4.compareTo(s5)); |
|