Java学习笔记(6)——字符和字符串

学习笔记 Add comments

Java平台包含三个用于字符数据处理的类。
1)Character:该类的实例可以包含单个字符值,也可以用于操作和检查单字符数据的简便方法。
2)String:该类用于处理由多个字符组成的不可改变的数据。
3)StringBuffer:该类用于存储和操作由多个字符组成的可改变的数据。

Sting类提供了好几个不同的构造器,允许使用不同的数据源提供字符串初始值。

1
2
3
4
5
6
7
8
9
String();//创建空字符串
String(byte[]);//创建字符串,其值由一个字节数组的内容设置
String(byte[],int,int);//参数表示字节数组的偏移量和长度
String(byte[],int,int,String);//String参数指定将字节转换成字符所用的字符编码
String(byte[],String);
String(char[]);
String(char[],int,int);
String(String);//不建议使用这种具有字符串直接值参数的构造器,它创建了两个相同的字符串
String(StringBuffer);//由字符串缓冲区设定其值

StringBuffer类的构造器。

1
2
3
StringBuffer //创建一个空的字符串缓冲区,默认容量为16个字符
StringBuffer(int) //int为指定的初时容量
StringBuffer(String) //其值由String初始化,容量为原始字符串的长度加16

字符串或字符串缓冲区的长度。

1
2
3
String.length();//得到字符串的长度
StringBuffer.length();
StringBuffer.capacity();//得到字符串缓冲区的容量

字符串没有capacity方法!

截取字符串的方法

1
2
String substring(int);//从int开始到字符串结尾的子字符串
String substring(int,int);//截取指定位置间的字符串

注意:字符串索引是从0,而不是1开始的。

搜索字符或字符串地方法

1
2
3
4
5
6
7
8
int indexOf(int);//返回指定的字符第一次出现的位置的索引
int lastindexOf(int);//最后一次出现的位置索引
int indexOf(int,int);//从指定的索引位置开始向前搜索,返回指定字符第一次出现位置的索引
int lastindexOf(int,int);//向后搜索,最后一次出现的位置的索引
int indexOf(String);
int lastindexOf(String);
int indexOf(String,int);
int lastindexOf(String,int)

StringBuffer类不支持indexOf和lastindexOf方法,需要的话,要先用toString将StringBuffer转成String类

比较字符串和部分字符串

1
2
3
4
5
6
7
8
9
10
boolean endsWith(String);//判断字符串是否以指定的字符串结尾
boolean startsWith(String);
boolean startsWith(String,int);//从指定位置开始判断
int compareTo(String);//按字典排次序比较两个字符串,并返回大于(>0)、等于(=0)、小于(<0)
int compareTo(Object);//比较前Object参数被转换为字符串
int compareToIgnoreCase(String);//忽略大小写的比较
boolean equals(Object);//比较是否相等
boolean equalsIgnoreCase(String);
boolean regionMatches(int,String,int,int);
boolean regionMatches(boolean,int,string,int,int);//检查字符串是否匹配String参数的指定部分,第一个int表示从字符串的索引位置,第二个int表示偏移量,第三个int表示偏移长度

操作字符串。因为字符串是不能被修改的,所以这些方法实际上是创建并返回包含结果的第二个字符串。

1
2
3
4
5
String concat(String);//将String参数连接到资格字符串的末尾。
String replace(char,char);//将第一个参数指定的字符替换为第二个参数指定的字符。
String trim();
STring toLowerCase();
String toUpperCase();

修改字符串缓冲区

1
2
3
4
5
6
7
tringBuffer append(boolean;char;char[];char[],int,int;double;float;int;long;Object;String);//将参数附加到字符缓冲区。在进行附加操作前,数据被转化成字符串
StringBuffer delete(int,int);//删除这个字符串缓冲区中的指定字符
StringBuffer deelteCharAt(int);
StringBuffer insert(int, boolean;char;char[];char[],int,int;double;float;int;long;Object;String);// 将第二个参数插入字符缓冲区。第一个整数参数指定一个索引,数据被插入到此索引之前。
StringBuffer replace(int,int,String);//替换指定的字符
void setCharAt(int,char);
StringBuffer reverse();//反转这个字符串缓冲区中字符的次序

字符串和编译器
把在双引号之间指定的部分称为字符串直接值,以下情况可以直接使用字符串直接值:

1
2
3
4
5
6
7
8
//任何应该使用String对象的地方使用字符串直接值,如System.out.pringln接受一个String参数
System.out.println("It is an example");
//可以直接从字符串直接值调用String的方法
int len = "hello, dude".length();
//用字符串直接值初始化一个字符串,编译器此时会自动创建一个新的String对象
String s = "Hola Mundo";
//使用+连接字符串 String cat ="cat";
System.out.println("con" + cat + "enation");

Related posts

One Response to “Java学习笔记(6)——字符和字符串”

  1. 来协 Says:

    good

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in