您的位置:首页 > 职场人生

黑马程序员_String类

2014-01-12 19:45 591 查看
------- android培训java培训、期待与您交流!
----------

String类

1.字符串是一个特殊的对象。

2.如何定义字符串对象呢?

String s = "abc";只要是双引号引起的数据都是字符串对象。

3.字符串最大的特点:一旦被初始化就不可以被改变。

4.S1和s2的区别?

String s1 = "abc"; // s1指向的内存中只有一个对象abc。

//String是一个类类型的变量,"abc"是一个对象,所以就是类类型的变量一定//指向对象。

String s2 = new String("abc"); //s2指向的内容中有两个对象abc、new


5.System.out.println(s1==s2);//false

System.out.println(s1.equals(s2));//true
,字符串中equals比较的是字符串内容是否相同。

String类复写object类中equals方法,该方法用于判断字符串是否相同。

字符串的方法

1,构造方法:

Strings1 = new String();//创建了一个空内容的字符串。

Strings2 = null;//s2没有任何对象指向,是一个null常量值。

Strings3 = "";//s3指向一个具体的字符串对象,只不过这个字符串中没
有内容。

注意:一般在定义字符串时,不用new。

Strings4 = new String("abc");

Strings5 = "abc";
一般用此写法

2,获取

2.1获取字符串的长度。

int length();

补充:数组也有长度,但是数组的length是属性,没有括号,即arr.length;然而字符串也有长度,但是字符串是通过方法完成的,所以带括号。

2.2根据位置获取位置上某个字符。

charcharAt(int index);

当访问到字符串不存在的角标时会发生stringIndexOfBoundsException。

2.3获取指定字符的位置。如果不存在返回-1,所以可以通过返回值-1来判
断某一个字符不存在的情况。

intindexOf(int ch);//返回的是ch在字符串中第一次出现的位置

intindexOf(int ch,int fromIndex); //从fromIndex指定位置开始,获取 ch在字符串中出现的位置。

intindexOf(String str); //返回的是str在字符串中第一次出现的位置。 int indexOf(String str,int fromIndex);//从fromIndex指定位置开始,
获取str在字符串中出现的位置。

intlastIndexOf(int ch);//反向索引ch在字符串中第一次出现的位置

intlastIndexOf(int ch,int fromIndex);//反向索引从fromIndex指定位
置开始,获取ch在字符串中出现的位置。

intlastIndexOf(String str);//反向索引str在字符串中第一次出现的位
置。

intlastIndexOf(String str,int fromIndex);//反向索引从fromIndex指定位置开始,
获取str在字符串中出现的位置。

2.4获取子串

Stringsubstring(begin);//从begin位开始,到length()-1为止.

Stringsubstring(begin,end);//从begin开始到end为止。包含begin
位,不包含end位。

substring(0,str.length());//获取整串

3.判断

3.1字符串中是否包含某一个子串。

boolean contains(str);

特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示
该str不在字符串中存在,所以,也可以用于对指定判断是否包含。

if(str.indexOf("aa")!=-1)

而且该方法即可以判断,又可以获取出现的位置。

-->如果只为判断用contains;如果既要判断又要获取位置用IndexOf。

3.2字符中是否有内容。

booleanisEmpty();原理就是判断长度是否为0.

3.3字符串是否是以指定内容开头。

booleanstartsWith(str);

3.4字符串是否是以指定内容结尾。

booleanendsWith(str);

3.5判断字符串是否相同

boolean equals(str);//覆盖了Object类中的方法

3.6判断内容是否相同,并忽略大小写。

booleanequalsIgnoreCase();

4.转换

4.1将字符数组转成字符串。

构造函数:

String(char[]);

String(char[],offset,count);将字符数组中的一部分转成字符串。

静态方法:

staticString copyValueOf(char[]);

staticString copyValueOf(char[] data, int offset, int count);

staticString valueOf(char[]);

4.2将字符串转成字符数组。

char[]toCharArray();

4.3将字节数组转成字符串。

String(byte[])

String(byte[],offset,count):将字节数组中的一部分转成字符串。

4.4将字符串转成字节数组。

byte[] getBytes();

字符串和字节数组在转换过程中,是可以指定编码表的。

4.5将基本数据类型转成字符串。

staticString valueOf(char);

static String valueOf(boolean);

static String valueOf(double);

static String valueOf(float);

static String valueOf(int);

static String valueOf(long);

static String valueOf(Object);

4.6将字符串转成大写或则小写。

String toUpperCase();

String toLowerCase();

4.7将字符串转成字符串数组,切割方法。

String[] split(分割的规则-字符串);

4.8替换

String replace(oldchar,newchar);

String replace(oldstring,newstring);

4.9将字符串两端的多个空格去除。

Stringtrim();

5.0对两个字符串进行自然顺序的比较。

intcompareTo(string);

如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0
的值;如果此字符串按字典顺序大于字符 串参数,则返回一个大于 0
的值。

小练习

1.获取一个字符串在另一个字符串中出现的次数。

class StringTest1

{

publicstatic int getSubCount_2(String str,String key)

{

int count = 0;

int index = 0;

while((index=str.indexOf(key,index))!=-1)

{

sop("index="+index);

index= index + key.length();

count++;

}

return count;

}

public staticvoid main(String[] args)

{

String str = "kkabkkcdkkefkks";

sop("count="+getSubCount_2(str,"kk"));

}

public staticvoid sop(String str)

{

System.out.println(str);

}

}

2.获取两个字符串中最大相同子串

class StringTest2

{

public staticString getMaxSubString(String s1,String s2)

{

String max = "",min = "";

max = (s1.length()>s2.length())?s1:s2;

min = (max==s1)?s2: s1;

for(int x=0; x<min.length(); x++)

{

for(inty=0,z=min.length()-x; z!=min.length()+1; y++,z++)

{

String temp = min.substring(y,z);

sop(temp);

if(max.contains(temp))

returntemp;

}

}

return "";

}

public staticvoid main(String[] args)

{

String s1 = "ab";

String s2 = "cvhellobnm";

sop(getMaxSubString(s2,s1));

}

public staticvoid sop(String str)

{

System.out.println(str);

}

}

3.将字符串反转。

class StringTest3

{

public staticvoid sop(String str)

{

System.out.println(str);

}

public staticvoid main(String[] args)

{

String s = " ab cd ";

sop("("+s+")");

sop("("+reverseString(s)+")");

}

public staticString reverseString(String s,int start,int end)

{

//字符串变数组。

char[] chs = s.toCharArray();

//反转数组。

reverse(chs,start,end);

//将数组变成字符串。

return new String(chs);

}

public staticString reverseString(String s)

{

return reverseString(s,0,s.length());

}

private staticvoid reverse(char[] arr,int x,int y)

{

for(int start=x,end=y-1; start<end ;start++,end--)

{

swap(arr,start,end);

}

}

private staticvoid swap(char[] arr,int x,int y)

{

char temp = arr[x];

arr[x] = arr[y];

arr[y] = temp;

}

}

------- android培训java培训、期待与您交流!
----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: