常用对象API-string类知识点

Java API:就是Java提供给我们使用的类,这些类将底层的实现封装了起来,


*String类

1、特点:字符串对象一旦被初始化就不会被改变。

String s = "abc";//创建一个字符串对象在常量池中。
String s1 = new String("abc");//创建两个对象一个new 一个字符串对象"abc"在堆内存中。

String s2 = "abc"

System.out.println(s1==s2);//true,"abc"在常,量池中,s1和s2都指向它;如果常量池中没有这个字符串,就创建一个,有就直接用即可
System.out.println(s==s1);//false,s记录的是常量池中的地址值,s1记录的是堆内存对象的地址值
System.out.println(s.equals(s1));//true
//string类中的equals复写Object中的equals建立了string类自己的判断字符串对象是否相同的依据。其实就是比较字符串内容。

2、构造函数

第一种:

char[] arr = {'w','a','p','q','x'};
String s = new String(arr,1,3);
System.out.println("s="+s);//S=apq

第二种:

String s = new String();//等效于String s = "";  不等效String s = null;
byte[] arr = {97,66,67,68};
String s1 = new String(arr);
System.out.println("s1="+s1);//s1=aBCD

第三种:将字符数组转换成字符串

char[] arr3 = {'a','b','c','d','e'};

String s = new String(arr3);

System.out.println(s);//s=abcde



常见问题或方法:

1、String s1 = "ab";

String s2 = "abc";

String s3= s1+"c";

System.out.println(s3==s2);//false;s3指向的是堆内存中的新地址值,s2记录的是常量池中的地址值

2、equals方法(比较字符串的内容是否相同,能区分大小写)

3、判断方法:

(1)、equalsIgnoreCase(String anotherString) 将此String 与另一个 String 比较,不区分大小写。

(2)、contains(String str) 判断字符串是否包含指定的字符串str

(3)、startsWith(String prefix)  测试此字符串是否以指定的字符串开始。

(4)、endsWith(String suffix)  测试此字符串是否以指定的字符串结束

(5)、isEmpty() 判断字符串是否为空

    ""和null的区别:""是字符串常量,同时也是一个string类的对象,既然是对象,当然可以调用String类中的方法。

null是空常量,不能调用任何的方法,否则会出现空指针异常。但是null常量可以给任意引用数据类型赋值

4、获取功能

(1)、length():

在数组中int []arr = {1,2,3};

         System.out.println(arr.length);length是属性

而String s1 = "haha";

    System.out.println(s1.length());//4//length()是一个方法,获取的是字符的个数

(2)char charAt(int index) 返回指定索引处的字符   这个方法会容易发生字符串索引越界异常

 char c = s1.charAt(1);

 System.out.println(c);//a

(3)int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引,如果不存在,返回-1

s1.indexOf(97)//1

上一个语句与s1.indexOf('a')结果相同因为参数接收的是int类型的,传递char类型的会自动提升

(4)int indexOf(String str) 返回指定字符串在此字符串中第一次出现处的索引

(5)indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索

(6)indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始

(7)lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引,也就是从后向前找,第一次出现该字符的位置

但是索引还是从左往右的数字

(8)substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串(默认到末尾)

(9)substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串(从指定位置到指定位置)

5、String的转换功能:
byte[ ] getBytes():把字符串转换为字节数组。//通过gbk码表将字符串转换成字节数组
char[ ] toCharArray():把字符串转换为字符数组。
static String valueOf(char[] chs):把字符数组转成字符串//底层是由String类的构造方法完成的
static String valueOf(int i):把int类型的数据转成字符串。
注意:String类的valueOf方法可以把任意类型的数据转成字符串。
String toLowerCase():把字符串转成小写。
String toUpperCase():把字符串转成大写。
String concat(String str):把字符串拼接//与+功能相同,但使用+功能更强大,可以用字符串与任意类型相加
6、 String的替换功能

String replace(char old,char new)

String replace(String old,String new)

String trim()去除字符串两端空格

7、字符串反转(例子)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值