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内存模型之happens-before概念详解
Jun 13 Java/Android
SpringBoot生成License的实现示例
Jun 16 Java/Android
详解SpringBoot异常处理流程及原理
Jun 21 Java/Android
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
Jul 01 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
springboot 启动如何排除某些bean的注入
Aug 02 Java/Android
SpringDataJPA在Entity中常用的注解介绍
Dec 06 Java/Android
Java GUI编程菜单组件实例详解
Apr 07 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
SpringBoot使用ip2region获取地理位置信息的方法
Jun 21 Java/Android
Android实现图片九宫格
Jun 28 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守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php将html转为图片的实现方法
2017/05/19 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
餐饮加盟计划书
2014/01/10 职场文书
简历自我评价模版
2014/01/31 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
python析构函数用法及注意事项
2021/06/22 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android