黑马程序员:Java中的字符串
2013-12-16 18:56
232 查看
-------
android培训、java培训、期待与您交流! ----------
一、String
字符串是一个特殊的对象。
字符串一旦初始化就不可以被改变。
创建字符串:
String str = "abc";String str1 = new String("abc“);
两者的区别;str在内存中有一个对象,str1在内存中有两个对象。
二、字符串中的方法
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 indexOfString str,int fromIndex);//从fromIndex指定的位置开始,获取str在字符串中出现的位置。
2、判断
1)字符串中是否包含一个子串。
boolean contains(str);2)字符串中是否有内容。
boolean isEmpty();3)字符串是否是以指定内容开头。
boolean startWith(str0;4)字符串是否是以指定内容结尾。
boolean endsWith(str);5)判断字符串中的内容是否相同,并忽略大小写
boolean equalsIgnoreCase();例;
3、字符串的转换
1)将字符数组转换成字符串
构造函数;String (char[])String(char[],offset,count);//将字节数组中的一部分转换成字符串
静态方法:
static String copyValueOf(char[] data,int offset, int count);
static String copyValueOf(char[]);
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);//如果替换的字符串不存在,返回的还是原字符串5、切割
String[] split(regex);6、子串,获取字符串中的一部分
String sunstring(begin);//从指定位置开始到结尾,如果不存在,会出现字符串角标异常。String substring(begin,end);
7、转换,去空格,比较
1)将字符串转换成大写或小写
String toUpperCase();String toLowerCase();
2)将字符串两端的多个空格去除。
String trim();3)对两个字符串进行自然顺序比较。
int compareTo(string);练习;获取一个字符串在另一个字符串中出现的次数
package com.java; /** * * @author wangxuan * 获取一个字符串在另一个字符串中出现的次数 * */ public class StringTest { /** * @param args */ public static int getsubCount(String string,String key) { int count = 0; int index = 0; while((index=string.indexOf(key))!=-1) { sop("string="+string); string=string.substring(index+key.length()); count++; } return count; } public static void sop(Object obj){ System.out.println(obj); } public static void main(String[] args) { // TODO Auto-generated method stub String string = "qweeeertyuiopasdfghjklzxcvbnm"; sop("count="+getsubCount(string, "ee")); } }
输出结果为:
string=qweeeertyuiopasdfghjklzxcvbnm
string=eertyuiopasdfghjklzxcvbnm
count=2
三、StringBuffer
StringBuffer 是字符串缓冲区,是一个容器。StringBuffer类的构造方法
1)StringBuffer()
使用该无参数的构造方法创建一个StringBuffer对象,分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的容量自动增加,以便存放增加的字符。2)StringBuffer(int size)
使用该构造方法创建一个StringBuffer对象,指定实体的初始容量为参数size指定的字符个数,当实体存放的字符序列的长度大于size时,实体的容量自动增加,以便存放所增加的字符。3)StringBuffer(string s)
使用该构造方法创建一个StringBuffer对象,指定配实体的初始容量为参数字符串s的长度再加16个字符。当该对象的实体存放的字符序列的长度大于size时,实体的容量自动增加,以便存放增加的字符。StringBuffer类常用的方法
1)append
将其他java类型数据转换成为字符串后再追加到StringBuffer对象中。2)char charAt(int n)
得到参数n指定的位置上的单个字符。当前对象实体中的字符串序列的第一个位置为0,第二个位置为1,以此类推。n的值必须是非负的一个数。
3)void setCharAt(int n,char ch)
将当前StringBuffer对象实体中的字符序列位置n处的字符用参数ch指定的字符替换。n必须是非负的,并且小于当前字符串长度。4)StringBuffer insert(int index,String str)
insert方法将一个字符串插入实体中,并返回当前对象的引用。5)public StringBuffer reverse()
StringBuffer对象使用reverse()方法将该对象实体中的字符序列翻转,并返回当前对象的引用。6)StringBuffer delete(int startIndex,int endIndex)
从当前StringBuffer对象实体中的字符序列中删除一个子序列,并返回当前对象的引用。startIndex指当前需删除的第一个字符下标,endIndex指定需删除的最后一个字符的下一个字符的下标。需要删除的子字符串从startIndex到endIndex-1。7)StringBuffer replace(int startIndex,int endIndex,String str)
将当前StringBuffer对象实体中的字符序列的一个子序列用参数str指定的字符串替换。被替换的子序列由下标startIndex和endIndex指定,即从startIndex到endIndex-1的序列被替换。该方法返回StringBuffer对象的引用。例:
package com.java; public class StringBufferDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub StringBuffer stringBuffer= new StringBuffer("hello world"); stringBuffer.insert(0, "java:"); stringBuffer.setCharAt(10, ','); System.out.println(stringBuffer); stringBuffer.append("!"); System.out.println(stringBuffer); stringBuffer.reverse(); System.out.println(stringBuffer); } }
输出结果为:
java:hello,world
java:hello,world!
!dlrow,olleh:avaj
四、StringBuilder
此类提供一个与StringBuffer兼容的API。与StringBuffer的不同之处;
StringBuffer是线程同步,线程安全的。
StringBuilder是线程不同步的,线程不安全的。
多线程用StringBuf,单线程用StringBuilder
相关文章推荐
- 黑马程序员——java复习总结——字符串
- 黑马程序员--Java笔记09--字符串String 及StringBuilder等及其常用方法
- 黑马程序员_关于java字符串反转的几种方案
- 黑马程序员—8、JAVA基础&字符串
- 黑马程序员:Java基础篇之String字符串
- 黑马程序员---java字符串常用类
- 黑马程序员--java 基础之线程与字符串处理类-----04
- 黑马程序员——java基础(字符串、基本类型包装类)
- 黑马程序员_Java基础_字符串_13
- 黑马程序员-java基础-去除ArrayList中重复的字符串
- 黑马程序员 【】java学习之路——计算字符串中字母出现的次数
- 黑马程序员——Java基础---字符串、数组相关
- 黑马程序员_日记28_Java字符串缓冲区
- 黑马程序员-JAVA学习之字符串对象的创建和比较
- 黑马程序员_java字符串之String
- 黑马程序员—Java中的字符串浅析
- 黑马程序员-java学习之String字符串
- 黑马程序员java学习笔记——String字符串及StringBubuffer容器
- 黑马程序员--java字符串
- 黑马程序员-java基础-去除ArrayList中重复的字符串方法2