黑马程序员_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培训、期待与您交流!
----------
----------
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培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员---java基础知识之String类
- 黑马程序员——java编程那些事儿____String类
- 黑马程序员_java String类
- 黑马程序员-java基础 String类
- 黑马程序员——JAVA学习笔记七(String类)
- 黑马程序员_String类的学习
- 黑马程序员_String类的方法和使用
- 黑马程序员_java基础笔记(05)...String类
- 黑马程序员_学习笔记第13天——String类
- 黑马程序员_java String类
- 黑马程序员_String类的一些总结
- 黑马程序员——JAVA String类
- 黑马程序员——Java基础---String类和基本数据类型包装类
- 黑马程序员-String类
- 黑马程序员---String类
- 黑马程序员_String类
- 黑马程序员_day016_String类和StringBuffer类
- 黑马程序员_<<String类>>
- 黑马程序员————java基础————常用类String类
- 黑马程序员 --- String类 StringBuffer 基本数据类型对象包装类