String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明为final类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。重新赋值后将会生成新的对像来存放新的内容,原先的对象依旧在内存中,原来的对象就会成为垃圾内存,在某一个特定的时刻Java虚拟机回收。
具体方法:
声明一个字符串变量:
String name = "abc";
1、int length();
语法:返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
字符串变量名.length();
String str = "abc \t\n";
int length = str.length();
System.out.println(length );
运行结果:6
2、char charAt(值);
语法 : 返回值为 char 类型。从字符串中取出指定位置的字符
字符串名.charAt(值);
String str= "abc";
char c = str.charAt(2);
System.out.println("指定字符为:" + c);
运行结果:指定字符为:c
3、char toCharArray();
语法:返回值为 char 数组类型。将字符串变成一个字符数组
字符串名.toCharArray();
String str= "abc";
char c[] = str.toCharArray();
for (int i = 0; i < c.length; i++)
{
System.out.println("转为数组输出:" + c[i]);
}
运行结果:
转为数组输出:a
转为数组输出:b
转为数组输出:c
4、int indexOf("字符"); int lastIndexOf("字符") ;
语法 :查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
字符串名.indexOf("字符");
字符串名.indexOf("字符",值);
字符串名.lastIndexOf("字符");
String str="axcdefgabc";
int a1 = str.indexOf("a");
int a2 = str.indexOf("x", 2);// 查找x的位置,从第3个开始查找
int a3 = str.lastIndexOf("c");
System.out.println("你的位置为:" + a1);
System.out.println("为的位置为:" + a2);
System.out.println("点最后出现的位置为:" + a3);
运行结果:
a的位置为: 0
x的位置为: -1
c最后出现的位置为: 9
5、字符串大小写的转换
toUpperCase(); 转大写
toLowerCase();转换成小写
String str = "hello world";
String str1 = "HELLO WORD";
System.out.println("将字符串转大写为:" + str.toUpperCase());
System.out.println("将字符串转换成小写为:" + str1.toLowerCase());
运算结果:
将字符串转大写为:HELLO WORLD
将字符串转换成小写为:hello world
6、根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。
String[] split("字符");
String str = "abc,123,def";
String[] arr1 = str.split(",");
运行结果:
arr1 //{ "boo", "and", "foo" }
7、字符串变量名.wquals(字符串变量名); 返回值为布尔类型。所以这里用 if 演示。比较两个字符串是否相等,返回布尔值
boolean equals(Object anObject)
String str = "hello";
String str1= "world";
if(str.equals(str1))
{
System.out.println("相等");
}
else
{
System.out.println("不相等");
}
运行结果:
不相等
8、去掉字符串左右空格
String trim();
String str = " abc ";
System.out.println("去掉左右空格后:" + str.trim());
运行结果:
去掉左右空格后:abc
9、新字符替换旧字符,也可以达到去空格的效果一种
String replace(char oldChar,char newChar);
String replaceAll(String,String);将某个内容全部替换成指定内容
String repalceFirst(String,String);将第一次出现的某个内容替换成指定的内容
String str = "abcdefgabdc";
System.out.println("替换:" + str.replace("abc", "123"));
System.out.println("替换全部:" + str.replaceAll("ab", "12"));
System.out.println("替换第一次出现:" + str.repalceFirst("a", "a"));
运行结果:
替换:123defg
替换全部:12cdefg12dc
替换第一次出现:abcdefgabdc
10、截取字符串
String substring(int beginIndex,int endIndex)
String str = "abcdefg";
// 截取0-3个位置的内容, 不含3
System.out.println("截取后的字符为:" + str.substring(0, 3));
// 从第3个位置开始截取, 含2
System.out.println("截取后字符为:" + str.substring(2));
运行结果:
截取后的字符为:abc
截取后字符为:cdefg
11、忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
boolean equalsIgnoreCase(String);
String str = "HELLO WORLd";
String str1 = "hello world";
if(str.equalsIgnoreCase(str1))
{
System.out.println("相等");
}
else
{
System.out.println("不相等");
}
运行结果:
相等
12、判断一个字符串里面是否包含指定的内容,返回一个布尔值
boolean contains(String);
String str = "HELLO WORLD";
String str1 = "WORLD";
if(str.contains(str1))
{
System.out.println("str内容中包含WORLD");
}
else
{
System.out.println("str内容中不包含WORLD");
}
运行结果:
str内容中包含WORLD
13、测试此字符串是否以指定的前缀开始。返回一个布尔值**boolean startsWith(String);
String str = "HELLO WORLd";
String str1 = "HE";
if(str.startsWith(str1))
{
System.out.println("str内容中包含HE前缀开头");
}
else
{
System.out.println("str内容中不包含HE前缀开头");
}
运行结果:
str内容中傲寒HE前缀开头
14、测试此字符串是否以指定的后缀结束。返回一个布尔值
boolean endsWith(String);
String str = "HELLO WORLD";
String str1 = "LD";
if(str.endsWith(str1))
{
System.out.println("str内容中包含 LD 后缀");
}
else
{
System.out.println("str内容中不包含 LD 后缀");
}
运行结果:
System.out.println("str内容中包含 LD 后缀");