String类
String类提供程序中指定字符串的一系列方法,是不可修改字符序列(即无法执行对字符串本身的修改),下面对字符串的定义及常用方法进行解释。
1、字符串的定义
字符串定义格式:
String 字符串名称=“字符串内容”;
String 字符串名称=new String(“字符串内容”);
//例:
String str="我爱JAVA";
String str=new String("我爱JAVA");
2、获取字符串长度
方法:int length(),返回一个正整数
//例:
String str="abcdefg";
System.out.println(str.length());
//输出:7
3、获取指定索引位置字符
(1) 获取指定字符(返回char型数据):
char charAt(int index);//获取索引位置字符串
(2) 获取字符串位置(都返回int型数据):
int indexOf(String str);//获取第一次出现的索引
int indexOf(String str,int formIndex);//从指定位置往后查
int lastIndexOf(String str);//获取最后一次出现的位置
int lastIndexOf(String str,int formIndex);//从指定位置往前查
//例:
String str="abcdefgabc";
//获取字符串的第一个字符
System.out.println(str.charAt(0));
//获取第一次出现的索引位置
System.out.println(str.indexOf("abc"));
//获取第一次出现的索引位置,从指定位置往后查
System.out.println(str.indexOf("abc",4));
//获取最后一次出现的索引位置
System.out.println(str.lastIndexOf("abc"));
//获取最后一次出现的索引位置,从指定位置往前查
System.out.println(str.lastIndexOf("abc",6));
//分别输出:a|0|7|7|0
4、截取字符串
下列方法返回值都为字符串类型(String类型):
(1) 指定开始位置截取字符串
String substring(int beginIndex);//beginIndex为开始位置
(1) 指定开始的位置和结束的位置截取字符串
String substring(int beginIndex,int endIndex);//beginIndex为开始位置,endIndex为结束位置
//例:
String str="abcdefg";
//指定开始位置截取字符串
System.out.println(str.substring(3));
//指定开始的位置和结束的位置截取字符串
System.out.println(str.substring(1,4));
//分别输出:defg|bcd
5、拼接字符串
使用‘+’运算符可实现多个字符串的拼接
//例:
String str="abc"+"123";
System.out.println(str);
//输出:abc123
6、判断字符串的开始与结尾
(1) 判断字符串结尾内容(返回一个布尔型数据):
boolean endsWith(String suffix);// suffix为要对比的字符串
(2) 判断字符串句首内容(返回一个布尔型数据):
boolean startsWith(stirng prefix);//prefix为要对比的字符串
//例:
String str="123abc123";
//如果传入的字符串123是字符串a的结尾内容,则返回true,否则返回false
System.out.println(str.endsWith("123"));
System.out.println(str.endsWith("1234"));
//如果传入的字符串123是字符串a的开头内容,则返回true,否则返回false
System.out.println(str.startsWith("123"));
System.out.println(str.startsWith("1234"));
//输出:true|false|true|false
7、判断字符串是否相等
Java中规定不能直接使用"=="号进行字符串内容的比较,应使用如下方法
(1) 字符串不忽略大小写的比较(返回一个布尔型数据):
boolean equals(String antherString);
(2) 字符串忽略大小写的比较(返回一个布尔型数据):
boolean equalsIgnoreCase(String anotherString);
//例:
String str="abc";
//如果字符串相等(不忽略大小写),则返回true,否则返回false
System.out.println(str.equals("abc"));
System.out.println(str.equals("Abc"));
//如果字符串相等(忽略大小写),则返回true,否则返回false
System.out.println(str.equalsIgnoreCase("abc"));
System.out.println(str.equalsIgnoreCase("Abc"));
//输出:true|false|true|true
8、字符串替换
下列方法返回值都为字符串类型(String类型):
(1) 方法一:
String repalce(Strinh target,String replacement);
//target为旧字符序列,repalcement为替换后的新字符序列
(2) 方法二:
String relpaceAll(String regex, String replacement);
//regex表示一种格式,将String中符合regex所给格式的字符串替换成replacement
(3) 方法三:
String replaceFirst(String regex, String replacement);
//将String中符合regex所给格式的第一个字符替换成replacement
//例:
String str="www.baidu.com";
//字符串替换
System.out.println(str.replace(".","#"));
System.out.println(str.replaceAll(".","#"));
System.out.println(str.replaceFirst(".","#"));
//输出:www#baidu#com|#############|#ww.baidu.com
9、字符串分割
下列方法返回值都为字符串类型(String类型)的数组:
(1) 字符串分割:
String[] split(String regex);//regex用于规定分割符号
(2) 限制分割次数:
String[] split(String regex,int limit);
//regex用于规定分割符号,limit为分割次数
//例:
String str="abc.def.123";
//字符串分割
String[] strArray=str.split("\\.");
for(String s:strArray) {
System.out.print(s+" ");
}
//限制字符串分割次数
String[] strArray1=str.split("\\.",2);
for(String s:strArray1) {
System.out.print(s+" ");
}
//输出:abc def 123|abc def.123
10、字符串大小写转换
下列方法返回值都为字符串类型(String类型):
(1) 字符串内字符全部变成大写:
String toUpperCase();
(2) 字符串内字符全部变成小写:
String toLowerCase();
//例:
String str="abc DEF";
//字符串内字符全部变成大写
System.out.println(str.toUpperCase());
//字符串内字符全部变成小写
System.out.println(str.toLowerCase());
//输出:ABC DEF|abc def
11、格式化字符串
String.format(String format,Object…args);
//例:
Date date = new Date();
//格式化字符串
String str=String.format("%tF",date);
System.out.println(str);
//输出:2020-04-15
12、去除空白内容
下列方法返回值都为字符串类型(String类型):
(1) 去除首位空白内容:
String trim();
(2) 去除字符串中所有空白内容
使用上文中的replaceAll方法
String replaceAll("\s","");// \ s正则表达式代表空白内容 ‘’”为空内容字符串
//例:
String str=" abc";
String str1=" abc 1 2 3";
System.out.println(str);
System.out.println(str.trim());
System.out.println(str1);
System.out.println(str1.replaceAll("\\s",""));
//输出: abc|abc| abc 1 2 3|abc123