1、字符串的定义
String是变量类型,表示字符串类型
name是给这个变量起的名字,这个是可以随意取的,只要不是java的关键字就可以了
=表示赋值,=右边的的内容表示 变量值,对字符串变量进行 赋值,需要用双引号括起来;
2、字符串格式化
1)、打印语句的使用,使用printf可以引用多个变量,在字符串中可以使用%s表示字符串变量,%d表示数字变量,%f表示浮点变量
printf打印不能换行
2)、使用字符串拼接,使用+拼接
如:
String name="晨+燕";
String countryName="中国";
System.out.println(name+"来自于"+countryName);
3、字符串常用方法
1)获取字符串长度
name1.length()
name1为字符串变量的名字,length是获取该字符串的长度,返回的类型为int类型
代码:
String name1="晨+燕";
int strLen=name1.length();
System.out.println(strLen);
2)去除字符串前后空格
name2.trim()
name2为字符串变量的名字,trim表示去除字符串前后空格后返回一个新的字符串,返回类型是字符串
String name1="晨+燕";
String name2=" 晨+燕 ";
int strLen=name1.length();
System.out.println(name1);
System.out.println(strLen);
System.out.println(name2);
System.out.println(name2.length());
System.out.println(name2.trim());
System.out.println(name2.trim().length());
3)字符串截取 s.substring(4,8)
s.substring(4,8)
其中s表示字符串的名字是s,substring方法表示截取字符串,括号里该方法的参数,4表示从第4个索引开始,8表示到8个索引不包括8索引,可以记为左含右不含,
注:字符串的索引第一个位置为0,依次类推,所以
String s="ABCDEFGHIJKL";
//目标截取其中的EFGH
String newStr=s.substring(4,8);
System.out.println(newStr);
4)字符串截取 s.substring(4)
其中s表示字符串的名字是s,substring方法表示截取字符串,括号里该方法的参数,4表示从第4个索引开始,一直截取到最后一个索引位置
String s="ABCDEFGHIJKL";
// 目标截取 EFGHIJKL
String newStr=s.substring(4);
System.out.println(newStr);
5)字符串替换 str1.replace(“wangfang”,“liyue”)
其中str1表示字符串的名字,replace()方法表示替换其中的字符串,括号里该方法的参数,表示将str1这个字符中的wangfang这个字符串替换为liyue,返回 一个新的字符串
String str1="wangfang 来自中国,她是最好的中国医生";
//将str1中的wangfang用liyue来替换,返回的是一个新的字符串,而不是修改字符串中的值
System.out.println(str1.replace("wangfang","liyue"));
System.out.println(str1);
6)字符串是否包含某些字符串 str1.contains(“中国”)
其中str1表示字符串的名字,contains()方法表示是否包含某个字符串,括号里该方法的参数,str1中是否包含中国,返回boolean类型,返回true表示包含,返回false表示不包含
String str1="wangfang 来自中国,她是最好的中国医生";
System.out.println(str1.contains("中国"));
7)字符串大小写转换
str1.toLowerCase(),表示把str1中的字母转换为小写字母
str1.toUpperCase(),表示把str1中的字母转换为大写字母
String str1="wangfang 来自中国,她是最好的中国生";
System.out.println(str1.toLowerCase());
System.out.println(str1.toUpperCase());
8)、字符串比较 str1.equals(str2)
表示str1与str2是否相同
String str1="zhaomei";
String str2="zhaomei";
String str3="zhaomeimei";
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
9)、字符串比较,忽略大小写对比
String str1="zhaomei";
String str2="Zhaomei";
System.out.println(str1.equals(str2));
System.out.println(str1.equalsIgnoreCase(str2));
10)、字符串分割,str1.split(“、”),表示用、将str1分割返回字符串数组
String str1="初、中、高、特高";
String[] strE=str1.split("、");
System.out.println(strE.length);
for(int i=0;i<strE.length;i++)
{ System.out.println(strE[i]);
}
4、String、StringBuffer、StringBuilder区别
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不 产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。