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 相关文章推荐
Spring Bean的实例化之属性注入源码剖析过程
Jun 13 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
Jul 09 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
Java使用Unsafe类的示例详解
Sep 25 Java/Android
springboot中的pom文件 project报错问题
Jan 18 Java/Android
springboot layui hutool Excel导入的实现
Mar 31 Java/Android
带你了解Java中的ForkJoin
Apr 28 Java/Android
Java中生成微信小程序太阳码的实现方案
Jun 01 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 Java/Android
SpringBoot Http远程调用的方法
Aug 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
一个用php3编写的简单计数器
2006/10/09 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
python 重定向获取真实url的方法
2018/05/11 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python