String类以及其常用方法

String基本认识:

1.首先我们要知道,字符串是一个由多个字符组成的一串数据,值一旦创建,不可再被修改

(原因是因为在源码中用final修饰的一个字符数组来储存这些数据)

String s="abc";

s+="d";

s+="e";

s+="f";

如上面实例演示,每次向字符串末尾加字符,这个字符串就会改变,同时,总是会有新的String类对象被创建,不过它们都曾指向引用s,最终s指向的字符串对象为“abcdef”。

(为解决此类问题,我们后期引入StringBuffer类)

2.java中所有字符串都是该类的实例。

(相当于每个字符串都是String类的实例对象)

 String对象的创建方式:

1.String a=“abc”;

(简化型)

创建过程:先在堆中的字符串常量池中查找有无已创建好的abc,若有,则直接指向此对象即可,若没有,则创建一个新对象abc

2.String a=new String(“abc”);

创建过程:直接在堆中创建新对象,无需判断。

有多种方法重写

常用的方法:

一、判断功能(返回的是boolean型)

String s=“Abc”;

String a=“abc”;

 1. s.equalsIgnoreCase(a);

此方法用于判断字符串s与字符串a内容是否相等,返回类型为boolean

(注意,此时会忽略字符大小写来进行判断,如验证码等会用到此方法)

2.s.Contains(a);

此方法用于判断s是否包含指定字串a;

3. s.isEmpty();

如字面意思,此方法判断这个字符串是否为空

二、String类获取功能的常用方法 

先定义一个字符串:

String a=new String("abcde");

1.S.length();

返回一个int值,获取到这个字符串的长度 。

此处需要注意,字符串获取长度的length是一个方法,而以前学过的数组.length则是一个常量。

2.s.charAt(int a);

返回指定索引的字符。

3.s.indexof("a");

返回指定字符a的索引,即位置。

要注意,只能查找这个字符串中首次出现的,从前向后找。

4.s.indexof("a",b);

从指定位置b开始查找首次出现的字符a,返回此字符的索引。

5.a.lastIndexof("a");

从后向前开始查找指定字符a,并返回索引。

还有很多方法的重写,不再一一列举。

6.a.substring(int b);

从指定位置b开始截取,一直到字符串末尾。

返回的是一个新的字符串对象。

7.a.substring(int a,int b);

从指定位置a截取到b,包括a位置,但不包括结尾b对应字符。

同样也有多种方法重载,不再列举。

三、String类转换功能方法 

 1.s.getbytes();

public class Test {
    public static void main(String[] args) {
       String s="你好";
       byte []a=s.getBytes();//无参默认的是UTF-8编码
        System.out.println(Arrays.toString(a));
    }
}
运行结果:[-28, -67, -96, -27, -91, -67]

将字符串s转换成字节型数组,无参时默认用UTF-8编码。

返回值是一个byte型数组。

此过程也被称为编码,相反,将byte数组转换回字符串被称为译码。

String s=new String(a,UTF-8)//译码,也是一种构造方法,参数分别为byte数组和编码格式

2.s.tocharArrays();

public class Test {
    public static void main(String[] args) {
       String s="abcd";
       char []a=s.toCharArray();
        System.out.println(Arrays.toString(a));
    }
}
运行结果:[a, b, c, d]

将字符串s转换为一个字符型数组。

相反的,我们也可以将字符型数组转换为字符串

String s =new String(char [ ]a);//一种构造方法,参数为char型数组

String s=String.valueof(char [ ]a);//利用String类中valueof方法,将字符型数组转换为字符串

3.s.toUpperCase();

将字符串s中小写字母全部转为大写。

s.toLowerCase()

将字符串s中大写字母全部转为小写。

注:返回值都为一个新的String对象,二十六的英文字母以外的字符不会改变。

4. s.concat("abc");

将字符串abc连接到s的末尾,并返回这个新的字符串对象。

5.s.spilt("正则表达式");

将字符串按照指定规则分割成字符串对象。

注意返回的是字符串对象;

上一篇:Linux shell中2>&1输出日志文件内容的含义解释 (全网最全,看完就懂)


下一篇:第【一】部分Netzob项目工具的安装配置