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 Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
Spring Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
SpringBoot整合JWT的入门指南
Jun 29 Java/Android
mybatis中sql语句CDATA标签的用法说明
Jun 30 Java/Android
简述Java中throw-throws异常抛出
Aug 07 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
Java9新特性对HTTP2协议支持与非阻塞HTTP API
Mar 16 Java/Android
Java中的随机数Random
Mar 17 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 Java/Android
Java 死锁解决方案
May 11 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
Jul 23 Java/Android
Mybatis 一级缓存和二级缓存原理区别
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
php简单静态页生成过程
2008/03/27 PHP
深入PHP内存相关的功能特性详解
2013/06/08 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
一些技巧性实用js代码小结
2009/10/14 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
python中xrange和range的区别
2014/05/13 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
网络工程专业毕业生推荐信
2013/10/28 职场文书
期末考试动员演讲稿
2014/01/10 职场文书
科级干部考察材料
2014/02/15 职场文书
公证处委托书
2015/01/28 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫
python 使用pandas读取csv文件的方法
2022/12/24 Python