目录
一、字符串的介绍
字符串在java中使用双引号括起来的多个字符或者两个字符,他被当做对象来处理,下面我们看下具体的操作吧。
二、Java中的String类
String就是一种数据类型,不过他不像int,double那些是基本数据类型,它是引用数据类型。对于String类,java中有许多供他操作的方法。不过首先,我们得学会如何去定义一个字符串。
定义字符串有两种办法
1:直接赋值法
String s1="klkl";
2:创建对象法
String s2=new String();
s2="fggfg";
package lian1;
public class one {
public static void main(String[] args) {
String s1="ioio";
String s2=new String();
s2="kkkkk";
System.out.println("s1="+s1);
System.out.print("s2="+s2);
}
}
学会了字符串的定义后,我们要开始对字符串操作了。
(1)连接字符串
连接字符串,我们也可以用到两种办法
1:直接使用+
s1="ss";
s2="ll";
s3=s1+s2;
输出: s3=ssll
2:使用concat方法
s1="ss";
s2="ll";
s3=s1.concat(s2);//这样子调用s2会拼接到s1后面
输出:s3=ssll;
package lian1;
public class one {
public static void main(String[] args) {
String s1="ioio";
String s2=new String();
s2="kkkkk";
String s4=s1+s2;
String s3=s1.concat(s2);
System.out.println("s3="+s3);
System.out.println("s4="+s4);
}
}
(2)字符串比较是否相等
equals() 比较两个字符串是否相等
equalsIgnoreCase() 忽略字母的大小写进行比较
以上两个相等就返回true,不相等返回false
package lian1;
public class one {
public static void main(String[] args) {
String s1="ioio",s2="ioio",s3="IOIO",s4="k";
System.out.println("s1和s2"+s1.equals(s2));
System.out.println("s1和s3去除大小写"+s1.equalsIgnoreCase(s3));
System.out.println("s1和s4"+s1.equals(s4));
}
}
(3)字符串比较大小
compareTo()方法,参数接受一个
比较大小的规则其实就是按照ASCII的大小比较的
两个字符串,出现的第一个两个字符不同的,返回他们的ASCII值的
如果他们的字符都一样的话,返回的就是他们的长度差
由此可知,两个字符串相等的话,返回的就是0
如s1.compareTo(s2)
比较的话,是s1-s2的哦,谁调用,谁就减!!!
package lian1;
public class one {
public static void main(String[] args) {
String s1="af",s2="aa",s3="afaaaaa";
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s3));
System.out.println(s2.compareTo(s1));
System.out.println(s3.compareTo(s1));
}
}
(4)字符串的截取
substring()方法
substring()一个参数的话,代表的是截取的起始位置,一直截取到末尾
substring(b,e)两个参数的话,代表的是从b开始截取,截取到e-1。
package lian1;
public class one {
public static void main(String[] args) {
String s1="abcdefgh";
System.out.println("从位置3开始截取:"+s1.substring(3));
System.out.println("从位置2到位置4:"+s1.substring(2,5));
}
}
(5)字符串的查找
indexOf()方法
indexOf()方法可以查找字符串出现的第一个索引,字符出现的第一个索引。
package lian1;
public class one {
public static void main(String[] args) {
String s1="abcdefgh";
System.out.println(s1.indexOf("b"));
System.out.println(s1.indexOf("gh"));
}
}
(6)字符串的替换
这里的replace()方法接受两个参数
第一个是旧的字符,第二个是新的字符
替换后,字符串中所有的旧的字符全部变为新的,注意是所有
package lian1;
public class one {
public static void main(String[] args) {
String s1="abcdefghaaaaa";
String s2=s1.replace('a','c');
System.out.print(s2);
}
}
(7)字符串中的字符遍历
package lian1;
public class one {
public static void main(String[] args) {
String s="abcdf";
for(int i=0;i<s.length();i++) {
System.out.println(s.charAt(i));//该方法就相当于字符串的索引吧
}
}
}
三、StringBuilder类
StringBuilder可以看做是一个容器,不过里面是可变的,它的出现使得我们操作字符串的效率大大的提高了。
StringBuilder可以空参构造,也可以带参
StringBuilder中的方法
append() 添加数据,并返回对象本身
reverse() 反转容器中的内容
length() 返回长度(字符出现的个数)
toString() 可以将StringBuilder类转换为String类
package lian1;
public class one {
public static void main(String[] args) {
StringBuilder s=new StringBuilder("abcdef");
System.out.println("s="+s+",s的长度="+s.length());
s.append("ghj");
System.out.println("s="+s+",s的长度="+s.length());
s.reverse();
System.out.println("s="+s);
String s1=s.toString();
for(int i=0;i<s1.length();i++) {
System.out.println(s1.charAt(i));
}
}
}
四、StringJoiner类
StringJoiner也可以看成一个容器,也是可变的。
不过他有个很大的特点,它可以指定拼接时的间隔符号
接受一个或者三个参数
一个参数:代表间隔符号
三个参数分别代表:间隔符号,起始符号,结束符号
它的方法:
add() 添加数据,返回对象本身
length() 返回长度
toString() 转换为String
package lian1;
import java.util.*;
public class one {
public static void main(String[] args) {
StringJoiner s=new StringJoiner("-");
s.add("a");
s.add("bbb");
s.add("uiu");
System.out.println(s);
StringJoiner s1=new StringJoiner("-","[","]");
s1.add("ppp");
s1.add("a");
s1.add(";;;");
System.out.println(s1);
}
}