字符串课后作业

1.请运行以下示例代码StringPool.java,查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?

结论:==能判断一个对象是否是同一个地址;s1和s0都是hello指向了同一个地址,但是new String("Hello")==new String("Hello")属于两个对象的不同地址是flase;

2.查询字串是否以某字串开头和结尾:startsWith和endWith方法 。

结论:String类中函数startWith和endWith分别是查看字符串是特定字符开头和结尾的函数。用法是函数后加所判断的字符。

3.何谓“哈希”?

什么是哈希码(HashCode)
在Java中,哈希码代表对象的特征。
例如对象 String str1 = “aa”, str1.hashCode= 3104
String str2 = “bb”, str2.hashCode= 3106
String str3 = “aa”, str3.hashCode= 3104
根据HashCode由此可得出str1!=str2,str1==str3
下面给出几个常用的哈希码的算法。
1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。
2:String类的hashCode.根据String类包含的字符串的内容,根据一种特殊算法返回哈希码,只要字符串所在的堆空间相同,返回的哈希码也相同。
3:Integer类,返回的哈希码就是Integer对象里所包含的那个整数的数值,例如Integer i1=new Integer(100),i1.hashCode的值就是100 。由此可见,2个一样大小的Integer对象,返回的哈希码也一样。
 
 
4.StringBuffer类的使用

StringBuffer

构造函数  

StringBuffer

定义了三个构造函数:   

StringBuffer() 

StringBuffer(int size) 

StringBuffer(String str) 

StringBuffer(CharSequence chars) 

 (1)、length()和capacity()  一个StringBuffer

当前长度可通过length()方法得到而整个可分配空间通过capacity()方法得到。

(2)、ensureCapacity() 设置缓冲区的大小

 void ensureCapacity(int capacity) 

(3)、setLength() 

设置缓冲区的长度

void setLength(int len) 

 (4)、charAt()和setCharAt() 

 char charAt(int where) 

 void setCharAt(int where,char ch) 

 (5)、getChars() 

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) 

(6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。

 例:int a=42; 

 StringBuffer sb=new StringBuffer(40); 

String s=sb.append("a=").append(a).append("!").toString(); 

(7)insert() 插入字符串

StringBuffer insert(int index,String str) 

 StringBuffer insert(int index,char ch) 

 StringBuffer insert(int index,Object obj) 

 index指定将字符串插入到StringBuffer对象中的位置的下标。

 (8)、reverse() 颠倒StringBuffer对象中的字符

StringBuffer reverse() 

 (9)、delete()和deleteCharAt() 删除字符

 StringBuffer delete(int startIndex,int endIndex) 

 StringBuffer deleteCharAt(int loc) 

5.

一、查找字符串中某个位置的字符

public char charAt(int index);//返回指定索引index位置上的字符,索引范围从0开始

四、查找指定字符串在字符串中第一次或最后一词出现的位置

在String类中提供了两种查找指定位置的字符串第一次出现的位置的方法

(1)public int indexOf(String str);//从字符串开始检索str,并返回第一次出现的位置,未出现返回-1

(2)public int indexOf(String str,int fromIndex);//从字符串的第fromIndex个字符开始检索str

二、检查字符串的起始字符和结束字符

开始的字符串两种方法

(1)public boolean starWith(String prefix,int toffset);//如果参数prefix表示的字符串序列是该对象从索引toffset处开始的子字符串,则返回true

(2)public boolean starWith(String prefix);

结束的字符串方法

public boolean endsWith(String suffix);

三、截取子串

(1)public String subString(int beginIndex);

(2)public String subString(int beginIndex,int endIndex);//返回的字符串是从beginIndex开始到endIndex-1的串

要返回后4位可以这样写Syetem.out.println(*.subString()(*.length()-4));

四、字符串的替换

两种方法

(1)public String replace(char oldChar,char newChar);

(2)public String replace(CharSequence target,CharSequence replacement);//把原来的etarget子序列替换为replacement序列,返回新串

(3)public String replaceAll(String regex,String replacement);//用正则表达式实现对字符串的匹配

五、字符串的大小写替转换

(1)public String toLowerCase(Locale locale);

(2)public String toLowerCase();

(3)public String toupperCase(Locale locale);

(4)public String toUpperCase();

六、去除字符串首尾空格

*.trim();

七、字符串转换

1、将字符串转换成字符数组

public char[] toCharArray();

2、将字符串转换成字符串数组

public String[] split(String regex);//regex 是给定的匹配

3、将其它数据类型转化为字符串

(1)public static String valueOf(boolean b);

(2)public static String valueOf(char c);

(3)public static String valueOf(int i);

(4)public static String valueOf(long i);

(5)public static String valueOf(float f);

(6)public static String valueOf(double d);

(7)public static String valueOf(char[] data);

(8)public static String valueOf(Object obj);

 

posted @ 2015-10-21 20:49  天中之云  阅读(256)  评论(0编辑  收藏  举报