JAVA API 实用类 String详解


Posted in Java/Android onOctober 05, 2021

String类

字符串的概念

简单来说字符串就是由多个字符(char)来组成的一串,我们自然可以用char[] 数组来保存一个字符串.但是在操作字符串时,比方说插入一个字符到字符串中,需要实现后移等操作.为了应对这个问题,C++引入string类,类似的Java也有String类.String类位于java.lang中于是不需要import导入包.

Java String的特殊之处

假设我们定义4个字符串,让他们的内容相同,唯一的不同是是否用new语句。这里需要注意的一点是为了提高运行速度,Java采用了“对象池”来存放字符串常量,即开辟一个专门的字符串池来存放字符串,创建一个字符串时,系统将会在字符串池中查找有无相同内容的字符串存在,如果有直接使用该对象。也就是说str1 与str2指向的是同一个字符串。而str3、str4通过new产生 指向的不是一个字符串。更为值得注意的是String内容的不可变性。也就是说每次改变字符串内容都会产生一个新的对象,或者指向字符串池中已经存在的字符串对象.

String str1="一个字符串";
String str2="一个字符串";
String str3=new String("一个字符串");
String str4=new String("一个字符串");
str1="另外一个字符串";//原来的对象"一个字符串"仍然存在,会造成内存消耗

String类的基本方法

字符串创建

1. String()//生成一个空串
 String a=new String();
2. String(String original)//原有字符串直接复制
String a="java",String b= new String(a);
3.String(char[],start,count)//字符串数组赋值 后面两参数可以省略 分别为开始的位置和长度
char ch[]={'a','b','v','c','d','e'};
String s1=new String(ch);//s1=abvcde;
String s2=new String (ch,2,3)//s2=vcd;

常用方法

//获取长度
String s="sabsda";
int cnt=s.length();
boolean equals(a,b);//比较两个字符串内容是否相同,区分大小写
boolean equalsIgoreeCase()//无视大小写比较
/*与==的区别是equal只判断内容是否相同,而==比较是否指向同一个对象*/
String str1="一个字符串";
String str2="一个字符串";
String str3=new String("一个字符串");
String str4=new String("一个字符串");
equals(str1,str2)==1
(str1==str2)==1
equals(str3,str4)==1
(str3==str4)==0;
int compareTO(a,b);//字典序比较 如果a<b返回负数 a==b返回0 a>b返回正数
int compareTOUgnoreCase();//不区分大小写
boolean startsWith(string a);//是否以a作为开头
boolean endsWiith(String a);// 是否以a作为结尾
//字符串的查找
1.int indexOf(char ch)
2.int indexOf(char ch,int position);
//字符串的修改
//需要注意的是,字符串内容具有不可改变性,如果硬性改变会产生新的字符串但是原串不发生改变.所以所有改变字符串的操作都会返回一个新的字符串对象而不是再原串上修改
1.连接 String str="This".concat("a") concat类似于 +;
2 替代 str.replace('a','b')将str中a替换成b
3 去除头部与尾部空格 str.trim();
4 str.toLowerCase()//小写
5 str.toUUpperCase()//大写

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Java/Android 相关文章推荐
JPA如何使用entityManager执行SQL并指定返回类型
Jun 15 Java/Android
详解SpringBoot异常处理流程及原理
Jun 21 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
Java实现房屋出租系统详解
Oct 05 Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Java详细解析==和equals的区别
Apr 07 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
SpringCloud之@FeignClient()注解的使用方式
Sep 25 #Java/Android
springboot中rabbitmq实现消息可靠性机制详解
Sep 25 #Java/Android
Spring Cloud 中@FeignClient注解中的contextId属性详解
Sep 25 #Java/Android
关于springboot配置druid数据源不生效问题(踩坑记)
Sep 25 #Java/Android
Java使用Unsafe类的示例详解
Sep 25 #Java/Android
Spring-cloud Config Server的3种配置方式
Sep 25 #Java/Android
MyBatis-Plus 批量插入数据的操作方法
Sep 25 #Java/Android
You might like
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
斜45度寻路实现函数
2009/08/20 Javascript
jquery 批量上传图片实现代码
2010/01/28 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
微信公众号平台接口开发 获取access_token过程解析
2019/08/14 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python实现猜拳小游戏
2020/04/05 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
网上卖盒饭创业计划书
2014/01/26 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
销售经理岗位职责
2015/01/31 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
服务器nginx权限被拒绝解决案例
2022/09/23 Servers