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 Swing实现自助取款机系统
Jun 11 Java/Android
分析Java中Map的遍历性能问题
Jun 26 Java/Android
SpringBoot实现异步事件驱动的方法
Jun 28 Java/Android
分析ZooKeeper分布式锁的实现
Jun 30 Java/Android
Java 泛型详解(超详细的java泛型方法解析)
Jul 02 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
使用logback实现按自己的需求打印日志到自定义的文件里
Aug 30 Java/Android
springmvc直接不经过controller访问WEB-INF中的页面问题
Feb 24 Java/Android
JavaWeb Servlet开发注册页面实例
Apr 11 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
Apr 28 Java/Android
Java实现添加条码或二维码到Word文档
Jun 01 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 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/27 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
DOM下的节点属性和操作小结
2009/05/14 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Django 开发环境配置过程详解
2019/07/18 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
Django中template for如何使用方法
2021/01/31 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
夜大毕业生自我鉴定
2013/10/31 职场文书
《颐和园》教学反思
2014/02/26 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
正则表达式拆分url实例代码
2022/02/24 Java/Android
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL