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 相关文章推荐
SpringBoot生成License的实现示例
Jun 16 Java/Android
Java生成读取条形码和二维码的简单示例
Jul 09 Java/Android
详解JAVA的控制语句
Nov 11 Java/Android
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
Dec 06 Java/Android
解析探秘fescar分布式事务实现原理
Feb 28 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 Java/Android
Android中的Launch Mode详情
Jun 05 Java/Android
详解Spring Bean的配置方式与实例化
Jun 10 Java/Android
Mybatis 一级缓存和二级缓存原理区别
Sep 23 Java/Android
Java结构型设计模式之组合模式详解
Sep 23 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
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
javascript 变量作用域 代码分析
2009/06/26 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python练习程序批量修改文件名
2014/01/16 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
高中校园广播稿
2014/01/11 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
优秀校长事迹材料
2014/12/24 职场文书
大学生活感想
2015/08/10 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
六年级作文之关于梦
2019/10/22 职场文书
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Python面试不修改数组找出重复的数字
2022/05/20 Python