1.String的概述
前言
这篇文章仅探讨String类,先不了解StringBuilder和StringBuffer等支持可变字符串的类。
1.1String在java中是一个类,String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
- 例如:String str = “abc”;
2.2字符串是常量;值在创建之后不能更改。String 对象是不可变的,这里的不可变是"abc"这个字符串一旦定义,“abc"就不可改变,不能在后面加"d”,变成"abcd",等后面我发布另一篇文章学习怎么才能对定义的字符进行改变。
2.String类的方法
这里我们把方法分成几类,构造、判断、获取、转换等等几类。
先来第一类
1.构造方法(了解)
- .用字节数组通过构造变成字符串。
byte[] arr1 = {97,98,99};
//通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
String s2 = new String(arr1); //解码-计算机看得懂转为我们看懂的 97->a 98->b 99->c
System.out.println(s2);//结果为 abc
- 还可以定义索引起始位置和长度参数。
byte[] arr2 = {97,98,99,100,101,102,103};
String s3 = new String(arr2,2,3); //2代表的从索引2开始,3代表长度。
System.out.println(s3); //结果:cde
- 将字符数组转换成字符串。
char[] arr3 = {'a','b','c'};
String s4 = new String(arr3);
System.out.println(s4); //结果:abc
- 同样的也有定义索引起始位置和长度参数。
char[] arr4 ={'a','b','c','d','e'};
String s5 = new String(arr4,2,3);
System.out.println(s5); //结果:cde
- 还有直接创建对象定义
String s6 = new String("abc");
看到这很多朋友可能想为啥不直接String str = ”abc“;这不更方便吗?
它们在底层其实是有区别的,在不同条件下,用不同方法。
2.常用的判断方法
* boolean equals(Object obj) //比较字符串内容是否相同,区分大小写
//例:s1.equals(s2) s1和s2为字符串
* boolean equalsIgnoreCase(String str) //比较字符串内容是否相同,忽略大小写
* boolean contains(String str) //判断字符串是否包含小字符串
* boolean stareWith(String str) //判断字符串是否以某个指定字符串开头
* boolean endsWith(String str) //判断字符串是否以某个指定字符串结尾
* boolean isEmpty() //判断字符串是否为空
* ""(空字符串)和null的区别
* ""(空字符串)是字符串对象,null不能调用任何方法,用这个方法会出错。
3.常用的获取方法
* int length() //获取字符串长度
* char cahrAt(int index) //获取指定索引位置的字符
* int indexOf(int ch) //返回指定字符在此字符串中第一次出现处的索引
* int indexOf(String str) //返回指定字符串在此字符串中第一次出现处的索引
* int indexOf(int ch,int fromIndex) //返回指定字符串从指定位置后第一次出现处的索引
* int indexOf(String str, int fromIndex) //返回指定字符串从指定位置后第一次出现处的索引
* String substring(int start) //从指定位置开始截取字符串,默认到末尾
* String substring(int start, int end) //从指定位置开始,指定位置结束。截取字符串
4.String转换功能
* bytr[] getBytes(); //使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
//列子:byte[] b = s1.getBytes();
* cahr[] toCharArray; //将字符串转化为新的字符数组
* static String valueOf(char[] chs) //把字符数组转化为字符串,封装了String的一个构造方法
* static String valueOf(int i) //把int类型的数据转化为字符串
//valueOf可以把任意类型的数据转成字符串
* String toLowerCase() //字符串转成小写
*String toUppererCase() //字符串转成大写
*String concat(String str) //字符串拼接
//列子:String s3 = s1.concat(s2);
5.其他功能
- A String的替换功能
- String replace (char old,char new)
- String replace( String old,String new)
- B String去除字符串两边空格
- String trim()
- String 按字典顺序比较两个字符串
- int compareTo(String str)//码表值来比较 unicode
- int compareToIgnoreCase(String str)
最近在学Java,把一些笔记记录一下。方法不难,学会的最主要练,走一遍就知道是怎么回事,最重要还是用得多了,很自然的就会了。