------- android培训、java培训、期待与您交流! ----------
String类
1.字符串是一个特殊的对象。
2.字符串一旦初始化就不可以改变。
3. s1和s2有什么区别?
String s1= "abc";//s1在内存中有一个对象。
String s2= new String("abc");//s2在内存中有两个对象。
String类的一般方法
1.获取
(1)字符串中的包含的字符数,也就是字符串的长度。
int length():获取长度。
(2)根据位置获取位置上某个字符。
char charAt(int index)
(3)根据字符获取该字符在字符串中位置。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch, int fromIndex)从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str)返回的是str在字符串中第一次出现的位置。
int indexOf(String str, intfromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastIndexOf(int ch)返回指定字符在此字符中最后一次出现处的索引。
2.判断
(1)字符串中是否包含某一个子串。
booleancontains(str)
特殊之处:indexOf(str)可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。所以,也可以用于对指定判断是否包含。
if(str.indexOf("aa")!=-1)
该方法即可以判断,有可以获取出现的位置。
(2)字符中是否有内容。
boolean isEmpty()判断长度是否为0.
(3)字符串是否是以指定内容开头。
boolean startsWith(str)
(4)字符串是否是以指定内容结尾。
boolean endsWith(str)
(5)判断字符串内容是否相同。复写了Object类中的equals方法。
boolean equals(str)
(6)判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase()
3.转换
(1)将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count)将字符数组中的一部分转成字符串。
静态方法:staticString copyValueOf(char[])
static String copyValueOf(char[] data, intoffset, int count)
static String valueOf(char[])
(2)将字符串转成字符数组。
char[] toCharArray()
(3)将字节数组转成字符串。
String(byte[])
String(byte[],offset,count)将字节数组中的一部分转成字符串。
(4)将字符串转成字节数组。
byte[] getBytes()
(5)将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4.替换
String replace(oldchar,newchar)返回一个新的字符串,他是通过用newchar替换次字符串中出现的所有oldchar得到的。如果替换字符串不存在,返回原串。
5.切割
String[] split(regex)
6.子串获取字符串中的一部分。
String substring(begin)从指定位置开始到结尾。
String substring(begin,end)包含头不包含尾(begin—end-1)。
7.转换,去除空格,比较。
(1)将字符串转成大写或则小写。
StringtoUpperCase()
StringtoLowerCase()
(2)将字符串两端的多个空格去除。
String trim()
(3)对两个字符串进行自然顺序的比较。
int compareTo(string)
示例:练习一模拟一个trim方法,去除字符串两端空格
classStringDemo1
{
public static void main(String[] args)
{
Strings= " as df ";
s=myTrim(s);
System.out.println ("("+s+")");//打印结果as df
}
public static String myTrim(String obj)
{
int start = 0 ,end =obj.length()-1;
while (start<=end &&obj.charAt(start)==' ')
{
start++;
}
while(start<=end &&obj.charAt(end)==' ' )
{
end--;
}
return obj.substring(start,end+1);
}
}
练习二获取一个字符串在另一个字符串中出现的次数
思路:
(1)定义一个计数器。(获取位置index判断存在Contains)
(2)获取kk的位置,每获取一次就计数一次。
(3当获取不到时,计数完成。
class StringDemo2
{
public static void main(String[] args)
{
String s1="abskksdkkakkj";
String s2="kk";
System.out.println(cishu(s1,s2)+"次");
}
public static int cishu(String str,Stringkey)
{
int count=0;
int index=0;
while((index=str.indexOf(key))!=-1)
{
str=str.substring(index+key.length());
count++;
}
return count;
}
}
------- android培训、java培训、期待与您交流! ----------