Sting知识小总结

一、String 、 StringBuffer、 StringBuilder的区别和联系:

联系:它们都是操作字符的类
区别:
1、StringBuffer===》synchronized 但是StringBuilder和String没有, StringBuffer多线程情况下使用,
有synchronized线程安全的关键字
StringBuilder和 String 没有 synchronized单线程情况下多线程 线程不安全;
2、拼接上:string每次都会产生新空间,而StringBuffer 、StringBuilder不会产生新空间;

3.String的拼接底层被优化为StringBuilder,append进行拼接, 结果将会调用StringBuilder的toString()

例如:
class String Zifuchuan {
public String fun(String[] strings) {
String str = null;
for (int i = 0; i < strings.length; i++) {
//str = str+ strings[i];
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(strings[i]);
str = stringBuilder.toString();
}
return str;
}
}
public class TestDemo{
public static void main(String[] args) {
String str = “abc”;
System.out.println(Integer.toHexString(str.hashCode()));
str = str+“def”;
System.out.println(Integer.toHexString(str.hashCode()));
str = str+“gh”;
System.out.println(Integer.toHexString(str.hashCode()));
System.out.println(str);
}
二、Character.isDigit(str.charAt(i) 判断一个字符是否为数字
三、StringIndexOutOfBoundsException 越界 ==》运行时异常
四、replaceFirst(把第一个参数替换为第二个参数)
例如:
public class TestDemo {
public static void main(String[] args) {
String str1 = “abcdefbc”;//3
//把第一个参数替换为第二个参数
String str2 = str1.replaceAll(“bc”,“gg”);
System.out.println(str2);
String str3 = str1.replaceFirst(“bc”,“gg”);
System.out.println(str3);
}
}
五、比较字符串:
1.(equals)区分大小写的比较
2.(equalsIgnoreCase)不区分大小写的比较
3.(compareTo)比较两个字符串的大小关系
例如:
public class TestDemo{
public static void main4(String[] args) {
String str1 = “abcdefbc”;
String str2 = “abc”;
System.out.println(str1.equals(str2));
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println(str1.compareTo(str2));
}
六、字符串的查找
1.(contains)判断一个字符串是否存在;
2. (indexof)从头开始查找字符串的位置,查到了返回位置的开始索引,如果查不到返回-1;
3.(lastIndexOf)从后往前查找;
4.(startsWith)从指定位置判断是否以指定字符串开头;
5.(endsWith)判断是否以指定字符串结尾;
例如:
public class TestDemo{
public static void main4(String[] args) {
System.out.println(str1.contains(“ac”));
System.out.println(str1.indexOf(“bc”,15));
System.out.println(str1.lastIndexOf(“bc”,4));
System.out.println(str1.startsWith(“ab”,2));
System.out.println(str1.startsWith(“d”));
System.out.println(str1.endsWith(“c”));
System.out.println(str1.endsWith(“bc”));
}
}
七、字符串的替换
1.(replaceAll)替换所有的指定内容;
2.(replaceFirst)替换首个内容;
八、字符串的拆分
1.(split(String regex) 将字符串全部拆分;
2. (split(String regex,int limit) 将字符串部分拆分,该数组长度就是limit极限;
九、字符串的截取
1.(substring)从指定索引截取到结尾;
2.(substring(int beginIndex,int endIndex)) 截取部分内容;
十、String 和 StringBuffer的相互转换
例如:public class TestDemo {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer(“hello”);
String str = new String(stringBuffer);
System.out.println(str);

    String str2 = stringBuffer.toString();
    System.out.println(str2);

}
}
十一、以(* \ . | ^ :)特殊拆分符,需加“\",如”\|"。

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值