欢迎访问我的个人网站:http://www.qingshuimonk.com/
1. 在JAVA中,字符串是对象,JAVA提供了String类,StringBuffer类和StringTokenizer类来存储和处理字符串。String类创建的字符串不能被修改,StringBuffer类能创建可变的字符串,StringTokenizer是一个工具类,可以从字符串中提取令牌。
2. 字符串类String:
a) 构造语法:String message = new String("Welcome to Java!”);或者Stringmessage = “Welcome to Java!”;
b) 也可用字符数组构成字符串,这一点和C相同。
c) 如果两个String对象是通过快捷初始化相同的字符串直接量构造的,则JAVA虚拟机为了提高效率,将它们存储在同一对象中。这样的字符串称为规范字符串。
d) 在计算机内部,字符串的值是私有数组变量表示的。不能从String类的外部访问该数组。String类提供了许多提取该数组信息的公用方法。
e) PA:注意不要越界访问字符串!
3. substring方法可以从字符串中提取子串
a) public String substring(intbeginIndex, int endIndex);返回一个新的字符串,它是该字符串的子串。子串从指定的beginIndex开始,扩展到下表为endIndex-1的字符
b) public String substring(intbeginIndex);子串从下表为beginIndex的字符开始,扩展到字符串的结尾。
c) 通过substring可以修改字符串的内容,如:
String message = “Welcome to Java”.substring(0,11)+”HTML”;
4. 使用equals()方法检测两个字符串是否具有相同的内容,使用==运算符检测两个字符串是否具有相同的引用。
5. 获取字符串中的一个字符或者子串:
a) public int indexOf(int ch );返回字符串中与指定字符串ch相匹配的第一个下标,若不存在则返回-1;
b) public int indexOf(int ch,intfromIndex);返回字符中fromIndex之后与ch相匹配的第一个下标,若不存在则返回-1;
c) public int indexOf(String str);和public intindexOf(String str,int fromIndex);用法与前两条类似;
d) public int lastindexOf();的用法与前三条类似。
6. 字符类为Character,通过Character character = new Character(‘a’);创建。
7. 字符串缓冲区类StringBuffer
a) StringBuffer类可以在字符串缓冲区中添加、插入或追加新的内容,然而,字符串一旦被创建后,他们的值就不能再被修改
b) public StringBuffer();构造一个没有字符且初始内容为16个字符大小的空字符串缓冲区
c) public StringBuffer(int length);构造一个没有字符且初始容量由参数length指定的字符串缓冲区
d) public StringBuffer(Stringstring);给参数string构造一个字符串缓冲区,其初始容量为string的长度加上16
8. 修改缓冲区中的字符串:
a) 在末尾追加新内容的方法:append();
b) 在指定位置插入新内容的方法:insert(int index,);
c) 删除字符的方法:delete(int fromIndex,int endIndex);或者deleteCharAt(intindex);
d) 倒置字符串的方法:reverse();
e) 替代字符的方法:replace(int fromIndex,int endIndex,String str);
f) 设置字符的方法:setCharAt(0,’w’);
9. 字符串令牌类String Tokenizer:
a) public StringTokenizer(Strings,String delim,Boolean returnDlims);将delim当作String的定界符,如果returnDlims为true,则定界符也看作令牌
b) public StringTokenizer(Strings,String delim);定界符不看作令牌
c) public StringTokenizer(String s);使用默认的\t\n\r作为令牌
10. 字符串扫描类Scanner:
a) 其中的方法useDelimiter(“…”);为以单词作为定界符,从一个字符串中扫描令牌。
b) 如果令牌是基本数据的类型,可以用nextByte(),nextInt();等等的方法来获取它。