第七章 数组与字符串
1.创建一维数组:new type[n]
创建二维数组:new type [n][m]
2. Eclipse编译出现此错误:The serializable class XXX does not declare a static final serialVersionUID field of type long
可序列化的类 CreateBPOVIEW 未声明类型为 long 的静态终态 serialVersionUID 字段
serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之类的。
当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义之。
在Eclipse中点击类中warning的图标一下,Eclipse就会自动给定两种生成的方式,如上面所述。如果不想定义它,在Eclipse的设置中也可以把它关掉的,设置如下:
Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems
将Serializable class without serialVersionUID的warning改成ignore即可。
如果你没有考虑到兼容性问题时,就把它关掉,不过有这个功能是好的,只要任何类别实现了Serializable这个接口的话,如果没有加入serialVersionUID,Eclipse都会给你warning提示,这个serialVersionUID为了让该类别Serializable向后兼容。
如果你的类Serialized存到硬盘上面后,可是后来你却更改了类别的field(增加或减少或改名),当你Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。
但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,这个可以避开不兼容性的问题
3.字符串构造:String(String str)/ String(char a[]) / String(char a[] , int startIndex , int count)
4.获取字符串长度:
str.length()
str.equals (s) 比较str与s引用的字符串
str.equalsIgnoreCase(String s) 比较str与s引用的字符串是否相同
str.endsWith(s) 判断str引用的字符串的后缀是否与s引用的字符串相同
str.compareTo(s) 比较str引用的字符串与s引用的字符串是否相同(从第一个开始比较)
5.字符串的检索:
Str.indexOf(s) 从str字符串的第一个字符开始寻找s子串首次出现的位置
str.indexOf(s,startpoint) 从str字符串的startpoint位置开始寻找s子串首次出现的位置
str.lastIndexOf(s) 从str字符串的第一个字符开始寻找s子串最后出现的位置
str.lastIndexOf(s,startpoint) 从str字符串的startpoint位置开始寻找s子串最后出现的位置
6.字符串的检索
7.截取字符串
str.subString(startpoint) 从str的startpoint位置开始到结尾截取子字符串
str.subString(start , end) 从str的start位置开始到end处截取一个子字符串,并返回子字符串的引用
8.替换
Str.replace (oldChar,newChar) 用新字符newChar替换str中的所有旧字符oldChar,得到一个新的字符串,并返回这个字符串的引用
str.trim() 去掉字符串str的前后空格,得到一个新的字符串,并返回这个字符串的引用
str.concat(String s) 将str与s连接在一起得到一个合并的字符串,并返回这个字符串的引用
9.字符串转化为数值
①转化为整型
public static Byte parseByte(String s) 该方法用于将s转化为byte类型
public static Short parseShort(String s) 该方法用于将s转化为Short类型
public static int parseInt(String s) 该方法用于将s转化为int类型
public static Long parseByte(String s) 该方法用于将s转化为long类型
②转化为浮点型
public static Float valueOf(String s) 该方法用于将s转化为Float类型
public static Double valueOf(String s) 该方法用于将s转化为double类型
10.数值转化为字符串
public static String. valueOf(byte n)
public static String. valueOf(int n)
public static String. valueOf(long n)
public static String. valueOf(float n)
public static String. valueOf(double n)
11. str.getChars(1,8,a,0) 作用是将字符串str中从第1到第8未知的字符串复制到数组a中(只包含1号位的字符,不包含8号位置的字符),并从数组a的0处开始存放这些字符
12.字符串与字节数组
new String (array,offset,length) 用指定的字节数组的一部分,即从数组array的起始位置offset开始,取length个子结构成一个字符串对象,并返回字符串的引用
public byte[] getBytes() 是将字符串转换为字节数组
12.字符串缓冲区StringBuffer
构建方法:
StringBuffer() 该方法创建的字符缓冲区的初始大小是16个字符
StringBuffer (int size) 该方法创建的字符缓冲区的初始大小是参数size指定的字符个数
StringBuffer (String str) 该方法创建的字符缓冲区的初始大小是字符串str的长度再加上16个字符
13.StringBuffer类的常用方法:
StringBuffer append(type x)
Public chat charAt(int n)
Public void setCharAt(int n,char ch)
StringBuffer insert(int index,String str)
Public StringBuffer reverse()
StringBuffer delete(int startIndex,int endIndex)
deleteCharAt(int index)
SrtingBuffer replace(int startIndex,int endIndex,String str)
Capacity() 获取缓冲区字符串的实际大小
13.字符分析器StringTokenizer
分析器把一个字符串分割成多个单词
构造方法:
String Tokenizer(String str)
String Tokenizer(String str, String delim) 用字符串str创建一个分析器,分析器用dilim中的字符分割单词
实用方法:
nextToken() 获得字符串中的下一个单词
hasMoreTokens() 判断指向单词的指针后面是否还有单词,若有单词就返回true,否则返回false
countTokens() 返回字符串中单词的个数
14.Character类
常用方法:
public static Boolean isDigit(char ch) 如果ch是数字字符,则该方法返回true,否则返回false
public static Boolean isLetter(char ch)
public static Boolean isLetterOrDigit(char ch)
public static Boolean isLowerCase(char ch)
public static Boolean isUpperCase(char ch)
public static Boolean toLowerCase(char ch) 返回ch的小写形式
public static Boolean toUpperCase(char ch) 返回ch的大写形式
public static Boolean isSpaceChar(char ch) 如果ch是空格则返回true,否则返回false

浙公网安备 33010602011771号