JAVA——基本字符操作(三)

本文详细介绍了JAVA中字符串的四种基本操作:如何将两个字符串相加,如何比较字符串是否相同,如何检查并计算子字符串在原字符串中的出现次数,以及如何替换子字符串。通过具体的代码示例,展示了equals方法、indexOf方法和replace方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本字符操作(三)

本文通过一些实例,介绍了与字符串有关的相加、比较、包含和替换四种操作。读者若想查阅其他类型的操作,可参考以下博客。
两个字符集合间的对比:
https://blog.youkuaiyun.com/Atishoo_13/article/details/82667128
输入、ASCII码和汉字内码的回显
https://blog.youkuaiyun.com/Atishoo_13/article/details/82628698
数值转换、字节数组转换和格式化字符串:
https://blog.youkuaiyun.com/Atishoo_13/article/details/82807865


1.使预先设定的两个字符串相加合成为一个新字符串。

  • String的长度可以是0到足够大
    代码:
public class rw16 {

	public static void main(String[] args) {
		String str1 = "投我以桃,";  // 字符串中可以中英文混合使用							
		String str2 = "报之以李。";		// 对于字符串,即使只包含一个字符,也要用双引号
		String plusStr = str1 + str2;			// 字符串可以“相加”
		System.out.println("str1:"+str1);
		System.out.println("str2:"+str2);
		System.out.println("str1+str2:"+plusStr);
	}

}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

2.操作包括两个字符串比较其是否相同。

  • String类已经提供了这么一个方法,它的名字叫做equals,方法返回值是大小写一个boolean变量。String类的equals()方法会比较两个字符串中的每个字符,如果完全相同(英文字符是区分大小写的),则返回true,否则返回false。
  • 两个引用之间也可以进行“==”运算,这个运算的意义是:当两个引用指向同一个对象或者同时为null的时候,运算结果为true;否则运算结果为false。可以用此计算符判断两个引用是否指向同一个对象。
public class rw17 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str1 = "ABCD"; 
		String str2 = "abcd" ;
		String str3 = "ABCD";
		boolean equals12 = str1.equals(str2);	// 调用equals()方法判断str1	
        // 是否和str2相等
		boolean equals13 = str1.equals(str3);	// 调用equals()方法判断str1												
		// 是否和str3相等
		System.out.println("str1:" + str1+"\nstr2:"+str2+"\nstr3:"+str3);
		System.out.println("字符串str1和字符串str2相等:" + equals12);
		System.out.println("字符串str1和字符串str3相等:" + equals13);
	}

}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

3.操作包括已知一个字符串,查找某一子字符串是否被包含在此字符串之中,如果包含,包含了多少次。

  • int length():这个方法的返回值是字符串的长度,也就是字符串中包含的字符的个数。
  • char charAt(int index):这个方法返回指定位置的字符。它的参数就是想要得到的字符所在的位置,而返回值就是出于此位置的字符。注意第一个字符的位置是0。此方法与数组相似,称之为“索引”。
    代码:
public class rw18 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Some of us get dipped in flat, some in satin, some in gloss. But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.";
		// 需要统计的字符串
		char target = 'o';					// 需要统计的字符
		int len = str.length();				// 得到字符串的长度
		int count = 0;						// 用来保存结果的int变量
		for (int i = 0; i < len; i++) {	// 遍历字符串中的每个字符
			char ch = str.charAt(i);		// 得到字符串中的第i个字符
			if (ch == target) {				// 如果这个字符是需要统计的
				count++;					// 计数器加1
			}
		}
		System.out.println(str+"\n以上语段中包含" + count + "个\'"+ target + "\'个字符");				
		// 输出结果
	}
}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

4.操作包括已知一个字符串及其包含的某一子字符串,把此子字符串替换为其他的新的指定字符串。

判断要进行替换的字符是否存在,并需要遍历找到要替换的字符串的位置。
在替换字符串的位置上进行替换,获得替换后生成的新的字符串。

  • 本程序定义一个replace()方法,对传入的字符串line进行部分替换。运用String对象的indexOf()方法,判断是否存在要替换的子串。若不存在子串,indexOf()方法返回-1。
  • StringBuffer是字符串变量,它的对象是可以补充和修改的。StringBuffer对象的append()方法用来补充添加字符串。程序中运用while循环,当碰到替换前的字符串时,添加替换后的字符串,来达到替换的目的。

代码:

public class rw19 {
	//JAVA程序的主入口方法
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//
		String s = "Say Hi Hi best Hi.";//原字符串
		System.out.println("原字符串为:"+s);
		String y="Hi";//原词
		String h="good";//替换词
		String s1=replace(s,y,h);//调用的方法进行替换
		System.out.println("将"+y+"换为"+h+"后为:"+s1);//输出替换后的字符串
	}
	//
	public static  final String replace(String line, String oldString, String newString) {
		// TODO Auto-generated method stub
		if(!"".equals("")) { //判断字符串是否为空
		return null;
		}
		int i=0;
		if((i=line.indexOf(oldString,i))>=0) {
			char[] line2=line.toCharArray();//字符串放入数组
			char[] newString2=newString.toCharArray();//要替换的字符串
			int oLength = oldString.length();//被替换的字符串
			StringBuffer buf =new StringBuffer(line2.length);
			buf.append(line2,0,i).append(newString2);
			i += oLength;
			int j=i;
			while((i=line.indexOf(oldString,i))>0) {//while循环
				buf.append(line2,j,i-j).append(newString2);
				i +=oLength;
				j=i;
			}
			buf.append(line2,j,line2.length-j);
			return buf.toString();//返回替换后的字符串
		}
		return line;
	}

}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值