Java--字符串讲解

目录

一、字符串的介绍

二、Java中的String类

(1)连接字符串

(2)字符串比较是否相等

 (3)字符串比较大小

 (4)字符串的截取

(5)字符串的查找

(6)字符串的替换

 (7)字符串中的字符遍历

三、StringBuilder类

四、StringJoiner类


一、字符串的介绍

字符串在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);
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稻子永不倒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值