java-14-String类
来源:互联网 发布:js插件编写 编辑:程序博客网 时间:2024/06/05 02:37
- String类的特点:
字符串常量池的特点
//字符串对象一旦被初始化就不会被改变。String s = "abc";//此处的"abc"是一个字符串常量对象,它存放在字符串常量池中。String s2 = "abc";System.out.println(s==s1);/*这句代码的结果是true,为什么呢?是因为它们比较的是内容么?错它们还是比较的是地址,因为"abc"存在于常量池中,所以s2创建的时候就不用重新建立字符"abc"直接拿来用即可,所以s1和s2都指向了"abc"的地址空间,所以结果是true。*/
String s = "abc";//创建一个字符串对象在常量池中。String s2 = new String("abc");//在堆里创建了两个对象,一个new的对象,一个是字符串对象。System.out.println(s == s2);/*这一句的执行结果是false,因为s指向的是常量池中的"abc"对象,而s2指向的是堆里的"abc"对象。它们两个的地址是不相同的,*/System.out.println(s.equals(s2));//词句的执行结果是true,因为在String类中复写了Object类中的equals方法,其实就是比较字符串的内容而不是对象的地址。
String 几个常用的构造函数
String s1 = new String("Str"); /*初始化一个新创建的 String 对象, 使其表示一个与参数相同的字符序列; 换句话说,新创建的字符串是该参数字符串的副本。 */ String s2 = new String();//等效于String s2 = ""; byte[] arr = {97,98,99,100}; String s3 = new String(arr); System.out.println("s3 = "+s3); //这个构造函数可以把byte数组变为字符串。 char[] str = {'a','w','y','z','k'}; String s4 = new String(str,0,2); System.out.println(s);//输出为aw
String类中常用的一些方法
1.获取功能; 1.1 获取字符串中字符的个数(长度) int length(); 1.2 根据位置获取字符。 char charAt(int index) 1.3 根据字符获取在字符串中第一个出现的位置。 从前往后索引 int indexOf(int ch); int indextOf(int ch,int fromIndex); //从指定位置进行字符ch的查找第一次出现的位置。 int indexOf(String str); int indexOf(String str, int fromIndex); //根据字符串str获取在字符串中第一次出现的位置。 从后往前索引 int lastIndexOf(int ch); int lastIndexOf(int ch,int fromIndex); int lastIndexOf(String str); int lastIndexOf(String str, int fromIndex); 1.4 获取字符串中的一部分字符串,也叫子串。 String subString(int beginIndex, int endIndex); //包含begin不包含end String subString(int beginIndex); 2.转换; 2.1 将字符串变成字符串数组(字符串的切割) String[] split(String regex);涉及到正则表达式 2.2 将字符串变成字符数组。 char[] toCharArray(); 2.3 将字符串变成字节数组。byte[] getBytes(); 2.4 将字符串中的字母转成大小写。 String toUpperCase();转大写 String toLowerCase();转小写 2.5 将字符串中的内容进行替换。 String replace(char oldChar, char newChar); String replace(char s1, char s2); 2.6 将字符串两端的空格去除。 String trim(); 2.7 将字符串进行连接。 String concat(String );3.判断 3.1 两个字符串内容是否相同; boolean equals(Object obj); boolean equalsIgnoreCase(String str);忽略大写,比较字符串内容。 3.2 字符串中是否包含指定字符串。 boolean contains(String str); 3.3 字符串是否以指定字符串开头,是否以指定字符串结尾。 boolean startsWith(String); boolean endsWith(String);4.比较 compareTo(String str);
2 StringBuffer和StringBuilder的特点及常用方法。
2.1 StringBuffer和StringBuilder的特点。
1.它们都是字符串缓冲区,是用于存储数据的容器。2.长度是可变的。3.可以存储不同类型的数据。4.最终要转成字符串。5.可以对字符串进行修改。
2.2 StringBuffer和StringBuilder的区别。
它们两个的功能是相同的,不同的是StringBuffer是支持同步的,适用于多线程;而StringBuilder是不支持同步的,适用于单线程。多线程StringBuffer 需要判断锁,降低了效率,提高了安全性。单线程StringBuilder 不用判断锁,提高了效率,降低了安全性。
2.3 常用方法
1.添加: StringBuffer append(data); StringBuffer insert(index,data);2.删除: StringBuffer delete(start,end);包含头,不包含尾。 StringBuffer deleteCharAt(int index);删除指定位置的元素。3.查找: char charAt(index); int indexOf(String); int lastIndexOf(String);4.修改: StringBuffer replace(start,end,data);包含头不包含尾 void setChartAt(index,char); 其他 int setLength(); StringBuffer reverse();
阅读全文
0 0
- java-14-String类
- 【java】:java String类
- 学习java String类
- java手记---String类
- java string类详解
- JAVA String类学习
- java String 类源代码
- Java.String类
- JAVA的String 类
- java String 类细节
- Java String类总结
- java-String类
- java基础---->String类
- java String类
- JAVA的String 类
- JAVA String类详解
- JAVA string 类
- Java API String类
- 4.7(1)——输出九九乘法表
- 制作html5游戏2
- HDU-1281 棋盘游戏
- 计算机音频储存
- 角点检测---moravec
- java-14-String类
- Vue.js解析(十一)【说说element组件库broadcast与dispatch】
- Linux中软连接和硬链接
- 4-2 电子时钟中的运算符重载
- 集合相等问题
- python使用互斥锁同步线程
- 1.2 换行输出
- 2017.11.16
- 笔记:elasticsearch在项目中的使用需求