Java进阶篇5——String类+StringBuffer类

本文详细介绍了Java中String类的常用方法,包括字符串比较、split()、indexOf()和contains(),并展示了如何进行字符串忽略大小写比较和ASCII码比较。此外,还讲解了StringBuffer类的特点,如可变内容、构造方法、append()、insert()和delete()方法,强调了在频繁字符串修改时使用StringBuffer的优势。

1. String 类

  在编程中会大量的使用String类。如,在学生类中定义3个属性分别为学生学号,姓名。院系:

public class Student {
	private String sno, sname, sdept;
}

1.1 字符串比较

  • 比较从3个方面:
1. 一个是串的内存应用是否相等。
2. 另一个是值是否相等。
3. 最后是串值ASCII码的大小。
  • 字符串值忽略大小写比较:
	public static void main(String[] args) {
		String s1 = "Java";
		String s2 = new String("JAVA");
		
		/*
		 * 1. eequalsIgnoreCase()
		 * 
		 * 2. 忽略大小写,比较第二点
		 */
		if(s1.equalsIgnoreCase(s2)) {
			System.out.println("s1与s2值相等");
		} else {
			System.out.println("s1与s2值不相等");
		}
	}
s1与s2值相等
  • 字符串大小比较:
	/**
	 * 比较串值ASCII码
	 */
	public static void practice2() {
		String s1 = new String("aaa");
		String s2 = "bbb";
		
		/*
		 * 1. compareTo()
		 * 
		 * 2. 比较字符串的ASCII码
		 * 
		 * 3. 输出两个字母的ASCII码差值
		 * 
		 * 4. 从首字母到尾字母一一比教,直到能比出大小
		 */
		int x = s1.compareTo(s2);

		if (x > 0) {
			System.out.println("s1>s2");
		} else if (x < 0) {
			System.out.println("s1<s2");
		} else {
			System.out.println("s1=s2");
		}
	}
s1<s2

1.2 分割字符串函数 split()

  • 对 s1以“,”号分割,返回一个数组
		String s1 = "aa,bb,cc,dd,ee fff";
		String s[] = s1.split(",");
  • 对 s1以“,”或“ ”(空格)分割
		String s1 = "aa,bb,cc,dd,ee fff";
		String s[] = s1.split(",| ");
  • 以 点,逗号, 空格,分割
	/**
	 * 分割字符串函数 split()
	 */
	public static void practice3() {
		String s1 = "aa.bb.cc,dd,ee fff";
		String s[] = s1.split("\\.|,| ");
		
		for(String x : s) {
			System.out.println(x);
		}
	}
aa
bb
cc
dd
ee
fff

1.3 查找 indexOf()

	/**
	 * indexOf()
	 */
	public static void practice4() {
		String s1 = "Hello Java , I love Java";
		int x = s1.indexOf("Java");
		
		System.out.println(x);
	}
6

1.4 判断字符串是否包含

	/**
	 * 判断字符串是否包含
	 */
	public static void practice5() {
		String s = "I love java";
		String s1 = "I";
		String s2 = "love";
		String s3 = "java";

		System.out.println("love是否在字符串里面:" + s.contains(s2));
		System.out.println("I是否是字符串前缀:" + s.contains(s1));
		System.out.println("you是否是字符串后缀:" + s.contains(s3));
	}
love是否在字符串里面:true
I是否是字符串前缀:true
you是否是字符串后缀:true

2. StringBuffer类

  与String最大的区别在与,StringBuffer本身串的内容是可变的。如果需要频繁的对字符串的内容修改,又不想改变串的内存引用地址,适合使用它。

2.1 StringBuffer类有3个构造方法

1. StringBuffer(), 默认容量为 16 个字符,不够自动增长。
2. StringBuffer(int size), 容量为 size 个字符,不够自动增长。
3. StringBuffer(String s), 容量为 s+16 个字符,不够自动增长。

2.2 容量,实际长度

1. 容量:最大能装
buf1.capacity(); // 获取 buf1的目前容量

2. 实际长度:实际能装
buf1.length(); // 获取buf1的实际字符个数

2.3 追加对象 append(Object)

buf1.append("I").append(" love").append(" java");

注意:
- buf1本身的内容在改变。
- 而String使用substring()函数时,String本身没有变。

2.4 插入子串 insert(int index, object)

buf1.insert(4, "java web");

2.5 删除字串 delete(int start, int end)

buf1.delete(4, 8);
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

释美家

鼓励,鼓励,更加努力

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

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

打赏作者

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

抵扣说明:

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

余额充值