------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一 String类:
1 定义:
1 String类对象是字符串。
2 字符串是特殊的对象。
4 字符串是常量,存放在方法区中,建立时进入对内存中。
3 一旦初始化不能被改变。
2 格式:
1 String str=new String ("String");
2 String str="string";
3 String str=new String ("String");String str1=str;
3 构造方法:
1 public String()得到"";与null不同""可以调用方法。
2 public String(char[] ch)得到char数组内的所有元素组成字符串。
3 public String(byte[] bytes) 得到byte数组内的所有原素组成数组。
4 public String(StringBuilder builder) 将StringBuilder 转换成数组。
5 public String(int[] codePoints, int offset, int count)将int数组对应的字符转换成字符串。
4 String常见方法;
1 public char charAt(int index)
返回index角标上的字符。
2 public int compareTo(String anotherString)
按字典循顺序比较字符串的大小区分大小写。
3 public int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。
4 public String concat(String str)
将字符串添加到该字符串结尾处。
5 public static String copyValueOf(char[] data)
返回指定数组中表示该字符序列的 String。
6 public static String copyValueOf(char[] data)
返回指定数组中表示该字符序列的String
7 public boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。
8 public boolean equals(Object anObject)
比较两个字符串内容一不一样。
9 public booleanequalsIgnoreCase(String anotherString)
比较两个字符串内容一不一样,不考虑大小写。
10public byte[] getBytes()
将字符串转换为字节数组。
11public getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此字符串复制到目标字符数组。
12public int indexOf(int ch)
获取字符出现的第一次位置。
13public int lastIndexOf(int ch)
获取字符左后一次出现的位置
。
14public int length()
获取字符串的长度。
15public boolean matches(String regex)
是否满足此正则表达式。
16public String replace(char oldChar, char newChar
新newChar字符替换指定的所有oldChar, 字符。
17public String[] split(String regex)
按正则表达式切割装进数组。
18public startsWith(String prefix)
是否以prefix字符串开头。
20public String substring(int beginIndex,int endIndex)
获取字符串的一部分
21public char[] toCharArray()
将字符串转换为char类型数组。
22public String trim()
取出字符串左右两边的空格。
23public static String valueOf(Object b)
将任意类型转换为字符串。
24public static String valueOf(基本数据类型,除了byte类型)
将基本数据类型转换为字符串;
例题:
1模拟去空格:
public class Test{
public static void main(String[] args)
{
System.out.println(myTrim(" 黑 马 训 练 营 "));
}
public static String myTrim(String str)
{
int start=0;
int end=str.length()-1;
while(start<=end&&str.charAt(start)==' ')
{
start++;
}
while(start<=end&&str.charAt(end)==' ')
{
end--;
}
return str.substring(start,end+1);
}
}
2模拟字符串翻转:
public static void main(String[] args) {
String str="了来我马黑";
System.out.println(myReverse(str));//黑马我来了
System.out.println(myReverse(str,3,5));//黑马
}
public static String myReverse(String str,int start,int end)
{
String str1="";
for(end=end-1 ;end>=start;end--)
{
str1=str1+str.charAt(end);
}
return str1;
}
public static String myReverse(String str)
{
String str1="";
for(int end=str.length()-1;end>=0;end--)
{
str1=str1+str.charAt(end);
}
return str1;
}
3获取一个字符串中另一个字符串出现的次数。
public static void main(String[] args)
{
String str="黑qq马qq训qq练qq 营qqqq";
System.out.println(conut(str, "qq"));
}
public static int conut(String str,String str1)
{
int count=0;
int start=0;
while( (start=str.indexOf(str1,start))!=-1){
count++;
start=start+str1.length();
}
return count;
}
二 StringBuffer
1 定义:
1 字符串缓冲区。
2 用于存储字符串。是个容器。
2 特点:
1 长度是可变的。
2 可以用于对字符串的增删。
3 常见方法:
1 增加:
1 append(boolean b)
将 boolean 类型数据的字符串表示形式存储进缓存区。
2 append(char c)
将char 类型数据的字符串表示形式存储进缓存区。
3 append(double d)
将 double 类型数据的字符串表示形式存储进缓存区。
4 append(float f)
将 float 类型数据的字符串表示形式存储进缓存区。
5 append(int i)
将 int 类型数据的字符串表示形式存储进缓存区。
6append(long lng)
将 long 类型数据的字符串表示形式存储进缓存区。
7 append(String str)
将字符串类型数据的字符串表示形式存储进缓存区。
8 append(StringBuffer sb)
将字符串缓存储进缓存区。
9 注意append返回的还Stringbuffer对象还可以调用方法。
2 删除
1 delete(int start, int end)
移除此缓冲区的子字符串中的字符。
2 deleteCharAt(int index)
移除此缓冲区指定位置的字符。
3 delete(0,s.length())
清空缓冲区
3 获取:
1 charAt(int index)
获取指定索引处的字符。
2 indexOf(String str)
获取str在缓冲区中字符串第一次出现的位置。
3 astIndexOf(String str)
反向获取tr在缓冲区中字符串第一次出现的位置。
4 length()
获取缓冲区字符串长度。
5 substring(int start)
获取缓冲区字符串的
4 修改:
1 replace(int start, int end, String str)
用新的字符串替换指定位置开始到指定位置结束的字符串。
2 setCharAt(int index, char ch)
修改指定索引的字符值。
3reverse()
将缓冲区字符串倒过来写。
三 StringBulder
1 定义:
1 和StringBuffer差不多方法相同。
2 StringBulder和StringBuffer区别
1 StringBulder是线程不安全的,效率高,使用于单线程。
2 StringBuffer是线程安全的,加了锁,使用于多线程。
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------