JAVA|JAVA API 实用类 String详解
目录
- String类
- 字符串的概念
- Java String的特殊之处
- String类的基本方法
- 字符串创建
- 常用方法
- 总结
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)==1equals(str3,str4)==1(str3==str4)==0; int compareTO(a,b); //字典序比较 如果ab返回正数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替换成b3 去除头部与尾部空格 str.trim(); 4 str.toLowerCase()//小写5 str.toUUpperCase()//大写
总结 【JAVA|JAVA API 实用类 String详解】本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 2020-04-07vue中Axios的封装和API接口的管理
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用