1.遍历字符串
public static void main(String[] args) {
String s1="阴天傍晚车窗外";
//遍历字符串
//方式1:通过charAt()方法
for(int i=0;i<s1.length();i++) {
char c=s1.charAt(i);
System.out.println(c);
}
System.out.println();//空格
//方式2:通过字符数组
//*char[]array=s1.toCharArray();*
char[]array=s1.toCharArray();//将字符串转换成char[]字符数组
for(int i=0;i<array.length;i++) {
char c=array[i];
System.out.println(c);
}
}
运行结果:
2.字符串的比较
实现方式:String类的implements实现了Comparable接口,
重写了compareTo()方法
b>a ASCII码
public class Demo03 {
public static void main(String[] args) {
String s1="abba";
String s2="abbb";
System.out.println(s1.compareTo(s2));
}
运行结果:
3.字符串的内容等值比较
重写object类的equlas()方法
public static void main(String[] args) {
//字符串常量池
String s1="just so so";
String s2="just so so";
System.out.println(s1==s2);//比较内存地址
System.out.println(s1.equals(s2));//比较内容
//在堆区重新分配空间
String s3=new String ("just so so");
String s4=new String ("just so so");
System.out.println(s3==s4);//比较内存地址
System.out.println(s3.equals(s4));//比较内容
}
运行结果:
4.字符串的查找搜索
index0f()方法: 从原字符串中查找目标字符串,返回第一次出现的位置
lastIndex0f()方法: 从原字符串中查找目标字符串,返回最后一次出现的位置
contains()方法: 判断原字符串中是否存在目标字符串
startsWith()方法: 判断原字符串是否以目标字符串开头
endsWith()方法: 判断原字符串是否以目标字符串结尾
public class Demo07 {
public static void main(String[] args) {
String s="唧唧复唧唧木兰当户织";//原字符串
String target="当户织";
// index0f()方法:
//如果存在:返回该目标字符串的下标(>=0)
//如果不存在:返回-1
//可以把目标语句改为测试:String target="唧唧";输出0 第一个下标0
int index=s.indexOf(target);
System.out.println(index);
// lastIndex0f()方法:
//如果存在:返回该目标字符串的下标(>=0)
//如果不存在:返回-1
//可以把目标语句改为测试:String target="唧唧";输出3 第4个字下标为3
int index1=s.lastIndexOf(target);
System.out.println(index1);
// contains()方法:
//如果存在,则返回true 输入:唧唧
//如果不存在,则返回false 输入:复习
//可以把目标语句改为测试:String target="唧唧"; 存在呀~true
boolean isContains=s.contains(target);
System.out.println(isContains);
// startwWith()方法:
//如果开始以目标值一样,则返回true 输入:唧唧
//如果开始以目标值不一样,则返回false 输入:复
boolean isStart=s.startsWith(target);
System.out.println(isStart);
// endsWith()方法:
//如果结尾以目标值一样,则返回true 输入:当户织
//如果结尾以目标值不一样,则返回false 输入:唧唧
boolean isEnd=s.endsWith(target);
System.out.println(isEnd);
}
运行结果:
5.截取字符串
字符串是不可变,每次截取,都会产生一个新的字符对象,使用substring()
public static void main(String[] args) {
//字符串是不可变
String s="我本将心向明月";
//每次截取,都会产生一个新的字符对象
String ret=s.substring(4);
System.out.println(s);//我本将心向明月
System.out.println(ret);//向明月
}
运行结果:
6.字符串的替换
public static void main(String[] args) {
//替换字符串
//ip地址无效化:"."替转换为"[.]"
String ip="127.0.0.1...";
//字符替换字符
//String ret=ip.replace('.', '#');
String ret=ip.replace(".","[.]");
System.out.println("原字符串:"+ip);
System.out.println("替换结果:"+ret);
}
运行结果:
7.字符串拼接
public class Demo01 {
public static void main(String[] args) {
//String使用+
//String.join()/String.format()
//StringBuileder/StringBuffer
//StringJoiner
//{"西安","宝鸡","渭南"}
String [] cityArr={"西安","宝鸡","渭南"};
//使用StringBuileder拼接
// System.out.println(Arrays.toString(cityArr));
//使用String.join
String ret1=String.join(",", cityArr);
ret1="{"+ret1+"}";
System.out.println(ret1);
//StringJoiner
//设置分隔符
//StringJoiner joiner=new StringJoiner(",");
//设置分隔符、左右关闭符号(开始符号和结束符号)
StringJoiner joiner=new StringJoiner(",","{","}");
for(String city:cityArr) {
joiner.add(String.format("\"%s\"", city));
}
String ret2=joiner.toString();
System.out.println(ret2);
}
8.去除首尾"空白字符"trim
public static void main(String[] args) {
//空白字符串:空格 \t \n \r
//String s=" A\tBC\t\r\n";
String s=" ABC\t\r\n";
//去除首尾"空白字符"trim
s=s.trim();
System.out.println(s);
System.out.println(s.length());//个数的话:例如中间插入了\t,\t算一个
}
运行结果: