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 相关文章推荐
Java输出Hello World完美过程解析
Jun 13 Java/Android
springboot集成flyway自动创表的详细配置
Jun 26 Java/Android
ObjectMapper 如何忽略字段大小写
Jun 29 Java/Android
java设计模式--建造者模式详解
Jul 21 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
Jan 18 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Android Flutter实现图片滑动切换效果
Apr 07 Java/Android
Java 超详细讲解十大排序算法面试无忧
Apr 08 Java/Android
IDEA 2022 Translation 未知错误 翻译文档失败
Apr 24 Java/Android
Java由浅入深通关抽象类与接口(下篇)
Apr 26 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 14 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
php开发环境配置记录
2011/01/14 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jQuery中is()方法用法实例
2015/01/06 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Python流程控制 while循环实现解析
2019/09/02 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
分布式数据库需要考虑哪些问题
2013/12/08 面试题
如何转换一个字符串到enum值
2014/04/12 面试题
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
写给女朋友的检讨书
2014/01/28 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
公司寄语大全
2014/04/10 职场文书
产品销售计划书
2014/05/04 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers