java字符串操作大全
String的系统类
1.字符串的介绍
1.字符串是一个常量 存在于常量池中
2.只要是是对字符串操作都是返回一个新的字符串 原字符串不能改
3.同名字符串常量表面发生改变,实则是引用地址发生改变,相当于指针重指
例如:
String str1 = "WEREW"
str1 = "kedmw"
System.out.println(str1)
打印结果: kedmw
2.判断两个字符串地址是否一样
String string0 = "abc";
String string1 = new String("abc");
String string2 = "abc";
System.out.println(string1 == string0);
System.out.println(string1 == string1);
System.out.println(string1.equals(string2));
运行结果:
false
true
true
注意 :
String string1 = "abc";
String string2 = new String("abc");
3.字符串的获取
1.根据索引获取字符串中字符
char charAt(int index);
2.根据字符获取在字符串中的位置
int indexof(int ch);
int indexof(int ch, int fromIndex);
实例代码:
String string = "wangjiang";
char c = string.charAt(2);
System.out.println(c);
运行结果: n
注释: 2为字符串string的角标 返还值为char类 是一个字符
String string = "wangjiang";
int b = string.indexOf('a');
System.out.println(b);
运行结果: 1
注释:结果为a所在位置角标的值
String string = "wangjiang";
int c = string.indexOf('n',3);
System.out.println(c);
运行结果: 7
注释:结果为位置角标后的n的位置角标
4.传人字符串 查找对应位置
String string = "wangjiang";
String string2 = "jia";
int in = string.indexOf(string2);
System.out.println(in);
运行结果: 4
注释:如果运行结果为负值 说明并没有这个字符串
5.是否包含这个字符串
String string = "wangjiang";
String string2 = "jia";
boolean b1 = string.contains(string2);
System.out.println(b1);
运行结果: true
6.拼接字符串
String string = "wangjiang";
String string2 = "jia";
String string3 = string1 + string2;
System.out.println(string3);
String aa = string1.concat(string2);//返回一个新的字符串
System.out.println(aa);
运行结果:
wangjiangjia
wangjiangjia
注释:两种方法 一种是直接拼接到一个字符串 另一种是从常量池中产生一个新字符串
7.验证字符串的前缀,包含,和后缀
String string = "www.baidu.com";
boolean b1 = string.contains("baidu");
System.out.println(b1);
boolean b2 = string.startsWith("www");
System.out.println(b2);
boolean b3 = string.endsWith("com");
System.out.println(b3);
运行结果:
true
true
true
8.替换字符
String string = "wnaglong";
String rString = string.replace('a', 'x');
将字符a替换为x
System.out.println(rString);
运行结果:
wnxglong
9.替换字符串
String string = "wnaglong";
将字符串long替换为son
String rString2 = string.replace("long", "son");
System.out.println(rString2);
运行结果:
wnagson
10.字符串分割
方法一,
String string = "wang,ejduwh,s,s,d";
String[] strings = string.split(",");
for (int i = 0; i < strings.length; i++) {
System.out.println(strings[i]);
}
方法二:
for(String s : strings) {
System.out.println(s);
}
运行结果:
wang
ejduwh
s
注释:方法二中 冒号前是一个容器 冒号后是要被遍历的数组
11.截取字符串
// 从索引处开始截取 返回的是从索引处往后的字符串
String string = "wanglong";
String aString = string.substring(5);
System.out.println(aString);
// [0,1)截取时 留头不留尾
String bString = string.substring(0, 4);
System.out.println(bString);
运行结果:
ong
wang
12.字符串大写转换
String string = "wanglong";
// 转大写
String aString = string.toUpperCase();
System.out.println(aString);
// 转小写
String string2 = "DIFKKKV";
String bString = string2.toLowerCase();
System.out.println(bString);
运行结果:
WANGLONG
difkkkv
13.字符串去前后空格
String string = " ab wde ";
String string2 =string.trim();
System.out.println(string2);
14.字符串比较
String s1 = "ac";
String s2 = "abc";
int num = s1.compareTo(s2);
System.out.println(num);
运行结果: 1
注释:
1.字符串相等时返回的是0
2.两个字符串长度相同时 3.一位一位比较进行 ASCII码的数值
4.两个字符串长度不相等时比较的是字符串的长度
注意:汉子也可以转换为数字
char c = '悬';
System.out.println((int)c);
运行结果: 24748
15.判断两这个字符串是否相等
String string = "wanglong";
String string2 = "wanglong";
boolean aString = string.equalsIgnoreCase(string2);//忽略大小写判断是否相等
System.out.println(aString);
运行结果: true
16.将字符转换为字符串
char[] array = {'w','a','n','g'};
String string = new String(array);
System.out.println(string);
运行结果:wang
17.int类转字符串
int num = 2
String aString = String.valueOf(num)
System.out.println(aString)
18.字符串转字符
String string2 = "wanglong";
char[] charArray = string2.toCharArray();
for (char c : charArray) {
System.out.println(c);
}
运行结果:
w
a
n
g
l
o
n
g
19.判断字符串是否为空
String string3 = "wanglong"
boolean b = string3.isEmpty()
System.out.println(b)
System.out.println(string3.length())
运行结果:
false
8
20.字符串倒置
String a = " abc def ";
char[] charArray = a.toCharArray();
for (int i = 0; i < charArray.length / 2; i++) {
char temp = charArray[i];
charArray[i]
= charArray[charArray.length - 1 -i];
charArray[charArray.length - 1 - i] = temp;
}
String newstr = new String(charArray);
System.out.println(newstr);
附加题
* 将字符串 " abc def "中的前后空格去掉
* 转化成 "abc def" 用代码实现(不使用系统方法)
public class Demo05 {
public static void main(String[] args) {
fun();
}
public static void fun() {
String string = " abc def ";
char[] charArray = string.toCharArray();
int start = 0;
int end = string.length() -1;
while (string.charAt(start) == ' ' && start < end) {
start++;
}
while (charArray[end] == ' ' && start < end) {
end--;
}
String ssString = string.substring(start, end + 1);
System.out.println(ssString);
}
}