第3章字符串和数组 本章介绍]ava处理字符串和数组。字符串由一系列字 符组成,这些字符可视为一个单元。本章将详细讨论 java. lang包中的 String类、 String Buffer类和 java util 包中 String Tokenizer类的功能。数组是相同类型的相 关数据项组成的数据结构,本章主要讨论一维数组和 多维数组的使用
第3章 字符串和数组 本章介绍Java处理字符串和数组。字符串由一系列字 符组成,这些字符可视为一个单元。本章将详细讨论 java.lang包中的String类、StringBuffer类和java.util 包中StringTokenizer类的功能。数组是相同类型的相 关数据项组成的数据结构,本章主要讨论一维数组和 多维数组的使用
3.1字符串 字符串是字符的序列,它是组织字符的基本数据结构, 从某种程度上来说有些类似于字符的数组。在Java中,字 符串被当作对象来处理。程序中需要用到的字符串可以分 为两大类,一类是创建之后不会再做修改和变动的字符电 常量;另一类是创建之后允许再做更改和变化的字符串变 量。对于字符串常量,由于程序中经常需要对它做比较, 搜索之类的操作,所以通常把它放在一个具有一定名称的 对象之中,由程序对该对象完成上述操作 java语言所提供的3种常用字符串类: String类(字符串类) String Buffer类(字符串缓冲器) String Tokenizer类(词法分析器类)
3.1字符串 字符串是字符的序列,它是组织字符的基本数据结构, 从某种程度上来说有些类似于字符的数组。在Java中,字 符串被当作对象来处理。程序中需要用到的字符串可以分 为两大类,一类是创建之后不会再做修改和变动的字符串 常量;另一类是创建之后允许再做更改和变化的字符串变 量。对于字符串常量,由于程序中经常需要对它做比较, 搜索之类的操作,所以通常把它放在一个具有一定名称的 对象之中,由程序对该对象完成上述操作。 java语言所提供的3种常用字符串类: ◼ String类(字符串类); ◼ StringBuffer类(字符串缓冲器); ◼ StringTokenizer类(词法分析器类)
31字符串— string:构造 ■构造一个字符串 字符串常量是用双引号括住的一串字符。如 welcome to java!”。要创建一个字符串,需要 用到下面的语法: String字符串变量名≡ new String(字符串常量) 另外java还提供了一个简单的创建字符串的简单 语法: String字符串变量名=字符串常量
3.1字符串——String:构造 ◼构造一个字符串 字符串常量是用双引号括住的一串字符。如 “welcome to java!”。要创建一个字符串,需要 用到下面的语法: String 字符串变量名 = new String (字符串常量); 另外java还提供了一个简单的创建字符串的简单 语法: String 字符串变量名 = 字符串常量
31字符串— String:基本方法 ■1. length public int length() 此方法返回字符串的字符个数,如: String s=abc System. out. printIn(slength () 则将显示字符个数为3
◼ 1. length public int length( ) 此方法返回字符串的字符个数,如: String s = "abc"; System.out.println( s.length( ) ); 则将显示字符个数为3。 3.1字符串——String:基本方法
31字符串— String:基本方法 ■2. charat public char charAt (int index 该方法返回字符串中 index位置上的字符,其中 index值的范 围是0~ length-1 ■3. getchars 如果要从字符串中提取一个以上的字符,则可以用此方法 public void getchars(int srcbegin, int end, char buf[, int dstbegin) 其中, srcbegin为要提取的第一个字符在源串中的位置, end为要提取的最后一个字符在源串中的位置,字符数组buf 存放目的字符串, dstbegin为提取的字符串在目的串中的起 始位置
◼ 2. charAt public char charAt (int index ) 该方法返回字符串中index位置上的字符,其中index值的范 围是0~length-1。 ◼ 3. getChars 如果要从字符串中提取一个以上的字符,则可以用此方法: public void getchars (int srcbegin,int end,char buf[],int dstbegin) 其中,srcbegin为要提取的第一个字符在源串中的位置, end为要提取的最后一个字符在源串中的位置,字符数组buf[] 存放目的字符串,dstbegin为提取的字符串在目的串中的起 始位置。 3.1字符串——String:基本方法
31字符串— string:基本方法 4.比较两个字符串是否相等的方法: public boolean equals( object anobject ■5比较两个字符串在不区分大小写时是否相等的方法: public boolean equals Ignore Case( Object anobject ■6.比较两个字符串大小的方法 public int compareTo( Object anobject 如: s1 compareTo(S2) 如果s1等于s2,方法返回0;如果按字典顺序s1小于s2,方法 返回一个小于0的值;如果按字典顺序s1大于s2,方法返回 个大于0的值。 ■7检査在指定范围内是否有指定前缀内容的方法: public boolean startsWith(String pre int toffset)
◼ 4.比较两个字符串是否相等的方法: public boolean equals ( Object anObject) ◼ 5.比较两个字符串在不区分大小写时是否相等的方法: public boolean equals IgnoreCase( Object anObject) ◼ 6.比较两个字符串大小的方法: public int compareTo ( Object anObject) 如:s1.compareTo ( s2) 如果s1等于s2,方法返回0;如果按字典顺序s1小于s2,方法 返回一个小于0的值;如果按字典顺序s1大于s2,方法返回一 个大于0的值。 ◼ 7.检查在指定范围内是否有指定前缀内容的方法: public boolean startsWith (String pre , int toffset) 3.1字符串——String:基本方法
31字符串— string:基本方法 ■8连接两个字符串的方法 public String concat( String str) 如:“Helo,“, concat(java). concat(Word!y) 返回” Hello, java World! ■9返回指定字符和指定字符串在字符串中第一次出现的位置值的方法 public int indexof(char ch) public int indexof( String str) ■10.在字符串中使用指定字符进行替换的方法: public String replace( char oldchar, char new Char 11.取子串的方法: public String substring(int start, int end) 12把字符串中字符转换为大小写的方法: public string toUpperCase public String toLowerCase
◼ 8.连接两个字符串的方法: public String concat ( String str) 如:“Hello, “ . concat (“ java”) . concat (“ World!”) 返回” Hello, java World!” 。 ◼ 9.返回指定字符和指定字符串在字符串中第一次出现的位置值的方法: public int indexOf (char ch) public int indexOf ( String str ) ◼ 10.在字符串中使用指定字符进行替换的方法: public String replace ( char oldchar , char newChar ) ◼ 11.取子串的方法: public String substring (int start , int end) ◼ 12.把字符串中字符转换为大小写的方法: public String toUpperCase ( ) public String toLowerCase ( ) 3.1字符串——String:基本方法
31字符串— String:示例 public class String Demo2 i public static void main(String args[l) t String strobl="First String String strob2=Second String", String strob3= strObl System. out. println("Length of strObl: +strObl. length) System. out. println("Char at index 3 in strobl: +strObl. charAt(3)) if(strobl. equals(strob2)) System. out println (strObl== strOb2) else System. out. println(strobl!= strOb2 ) if(strObl.equals(strOb3)) System. out. printIn(strobl==strOb3") else System. out. printIn(strobl!=strob3");
public class StringDemo2 { public static void main(String args[]) { String strOb1 = "First String"; String strOb2 = "Second String"; String strOb3 = strOb1; System.out.println("Length of strOb1: " +strOb1.length()); System.out.println("Char at index 3 in strOb1: " +strOb1.charAt(3)); if(strOb1.equals(strOb2)) System.out.println("strOb1 = = strOb2"); else System.out.println("strOb1 != strOb2"); if(strOb1.equals (strOb3)) System.out.println("strOb1 == strOb3"); else System.out.println("strOb1 != strOb3"); } } 3.1字符串——String:示例
31字符串— string:示例 运行结果为: Length of strobl: 12 Char at index 3 in strobl: S strobl!= strOb2strOb1== strOb3
运行结果为: Length of strOb1: 12Char at index 3 in strOb1: s strOb1 != strOb2strOb1 == strOb3 3.1字符串——String:示例
31字符串— String Buffer:创建 字符串一旦创建,它的值就固定了,但在实际应用中,经常需要对字 符串的内容做动态修改,Java类的替代品 String Buffer类(字符串缓 冲器类型)可以实现该操作。 String Buffer类比 String类更灵活,可以 在字符串缓冲区中添加、插入、追加新内容。 1.构造一个字符缓冲区 public String Buffer( 建立一个空串的缓冲区,长度为16。 String Buffer int length 建立一个长度为 length的空串缓冲区。 String Buffer( String str) 初始化缓冲区内容为给定的字符串str,并提供另16个字符的空间供 再次分配。类似于 Vector
字符串一旦创建,它的值就固定了,但在实际应用中,经常需要对字 符串的内容做动态修改,Java类的替代品StringBuffer类(字符串缓 冲器类型)可以实现该操作。StringBuffer类比String类更灵活,可以 在字符串缓冲区中添加、插入、追加新内容。 1.构造一个字符缓冲区 public StringBuffer( ) 建立一个空串的缓冲区,长度为16。 StringBuffer ( int length) 建立一个长度为length的空串缓冲区。 StringBuffer ( String str) 初始化缓冲区内容为给定的字符串str,并提供另16个字符的空间供 再次分配。 类似于Vector 3.1字符串——StringBuffer:创建