String类
字符串是个常量 常量字符串
注意: 对字符串进行操作 都是返回一个新的字符串(原字符串不能更改)字符串存在于常量池中,字符串本身#没有发生变化 而是引用地址发生变化,相当于 指针重新指向
代码举例:
public class Demo01 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
System.out.println(s1 == s2);//false
System.out.println(s1 == s3);//true
// 字符串中的equals方法 比较是两个字符串每一个字符
System.out.println(s1.equals(s2));//true
// s1 和 s2 有什么不同 分别代表几个对象?
// s1 是一个对象
// s2 是两个对象 "abc"是一个对象 new 是一个对象
String s1 = "abc";
String s2 = new String("abc");
}
}
String 在JDK中的一些方法
代码应用举例:
public class Demo03 {
public static void fun1() {
//替换
String string = "wanglong";
// 替换字符
String replace = string.replace('l' , 'n');
//替换字符串
String replace2 = string.replace("long", "song");
System.out.println(replace);
System.out.println(replace2);
}
public static void fun2() {
String string = "wang,long,z,n,b";
String[] split = string.split(",");
//for (int i = 0; i < split.length; i++) {
// System.out.println(split[i]);
//}
//增强FOR循环 用来快速打印(快速遍历)
// : 后 是要遍历的容器(数组)
// : 前 代表容器中 每一个元素
for (String string2 : split) {
System.out.println(string2);
}
}
//获取子字符串
public static void fun3() {
String string = "wanglong";
// 从索引处开始截取 返回从索引处开始的字符串
String substring = string.substring(2);
// 留头不留尾
String substring2 = string.substring(0, 4);
System.out.println(substring2);
}
// 转换大小写
public static void fun4() {
String string = "WANGLONG";
String upperCase = string.toLowerCase();
System.out.println(upperCase);
}
// 去空格
public static void fun5() {
String string = " WANG LONG ";
String trim = string.trim();
System.out.println(trim);
}
// 字符串比较
public static void fun6() {
// 字符串相等时候 返回零 两个字符串长度相同时 会一位一位的进行ASCII比较
// 长度不相等 返回的是长度的差值
String string = "abc";
String string1 = "abcd";
int compareTo = string.compareTo(string1);
System.out.println(compareTo);
}
// 判断两个字符串是否相等 忽略大小写
public static void fun7() {
String string = "wanglong";
String string1 = "WANGlong";
boolean equalsIgnoreCase = string.equalsIgnoreCase(string1);
System.out.println(equalsIgnoreCase);
}
public static void fun8() {
char[] array = {'w','a','n','g'};
String string = new String(array);
System.out.println(string);
int num = 5;
String valueOf = String.valueOf(num);
System.out.println(valueOf);
// 字符串 转 字符数组
String string2 = "wanglong";
char[] charArray = string2.toCharArray();
//for (char c : charArray) {
// System.out.print(c);
//}
String string3 = "wanglong";
boolean empty = string3.isEmpty();
System.out.println(empty);
}
public static void main(String[] args) {
fun8();
}
}
利用String类中的方法解决一些例题
public class Demo04 {
public static void main(String[] args) {
fun3();
//fun2();
//fun1();
}
/*
*计算字符串中 "wwwdasdwwwaswwwghwwwkl" www出现的次数
*
/
private static void fun3() {
String string = "wwwdasdwwwaswwwghwwwkl";
String string2 = "www";
int count = 0;
int indexOf = 0;
while (string.contains(string2)) {
// 寻找字符串起始坐标
indexOf = string.indexOf(string2);
// 截取字符串
string = string.substring(indexOf + string2.length());
count++;
}System.out.println(count);
}
/**
* 将字符串 " abc def "中的前后空格去掉
* 转化成 "abc def" 用代码实现(不使用系统方法)
*/
private static void fun2() {
String string = " abc def ";
char[] charArray = string.toCharArray();
int start = 0;
int end = charArray.length - 1;
// 寻找第一个不是空格的索引
while(string.charAt(start) == ' ' && start < end) {
start++;
}
// 寻找结束坐标
while (charArray[end] == ' ' && end > start) {
end--;
}
String substring = string.substring(start, end + 1);
System.out.println(substring);
}
/**
* 将字符串 " abc def " 反转
*/
private static void fun1() {
String string = " abc def ";
// 转换成字符数组
char[] charArray = string.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);
}
}