String 类的常用类 String类适用于描述字符串事物,一旦被创建就不能被改变 1.获取 1.1 字符串中包含的字符数,也就是字符串的长度 int length(); 获取长度 1.2根据位置获取位置上的某个字符。 char chatAt(int index); 1.3根据字符获取该字符在字符串的位置 intindexOf(int ch);返回的是ch在字符串第一次出现的位置 int indexOf(int ch,int fromIndex); 从fromIndex指定位置开始,获取ch在字符串中出现的位置 int lastIndexOf(int ch);从后往前索引查找 int indexOf(String str);返回的是str在字符串第一次出现的位置 int indexOf(String str,int fromIndex); 从fromIndex指定位置开始,获取str在字符串中出现的位置 2.判断 2.1 字符串中是否包含某个字符 booleancontains(str); 特殊之处:indexOf(str);可以索引str第一次出现的位置,如果返回-1,表示str不在字符串中存在,所以也可以用于指定字符串的判断是否包含 if(str.indexOf(“aa”)!=-1)就是包含 此方法即可以判断又可以获取出现的位置 2.2字符串中是否有内容 BooleanisEmpty();原理是判断字符串长度是否为0 2.3字符串中是否以指定内容开头 boolean startsWith(str); 2.4字符串中是否以指定内容结尾 boolean endsWith(str); 用于判断文件的扩展名 2.5判断字符串内容是否相同。复写了object类中的equals方法。 booleanequals(str); 2.6判断内容是否相同,并忽略大小写 booleanequalsIgnoreCase(); 3.转换 3.1将字符数组转换成字符串 构造函数:String (char[]) String (char[],offset,count):将字符数组中的一部分转换成字符串 静态方法:static String copyValuesOf(char[]); copyValuesOf(char[] data,int offset,intcount) static String valuesOf(char[]); 3.2将字符串转换成字符数组** char[] toCharArray(); 3.3将字节数组转换成字符串 String (byte[]) String(byte[],offset,count):将字符数组中的一部分转换成字符串 3.4将字符串转换成字节数组 byte[] getBytes(); 3.5 将基本的数据类型转换成字符串 static String valuesOf(int) static String valuesOf(double) 特殊:字符串和字节数组在转换过程中,是可以指定编码表的! 将字符串进行反转的实例化操作 /** * 将字符串(从指定的start到指定的end)进行反转//要全转字符串只要(reverseString(s,0,s.length-1)) * 1.将字符串转换成数组 * 2.将数组进行反转 * 3.将数组转换成字符串 * */ public staticString reverseString(String s,int start,intend){ char []ch=s.toCharArray(); reverse(ch,start,end); return newString(ch); } private static voidreverse(char[] arr,int x,int y){//x,y是角标 for(intstart=x,end=y-1;start<end;start++,end--){ swap(arr,start,end); } } private static voidswap(char[] arr,intstart,int end){ char temp= arr[start]; arr[start]=arr[end]; arr[end]=temp; } 4.替换 String replace(oldchar,newchar); 5.切割 String[] split(regex);regex 是切割符 6.获取。获取字符串中的一部分 String substring (begin):从begin到字符串的结尾处 String substring (begin,end):包含begin不包含end(str.length) 实例1:获取一个字符串在另一个字符串中出现的次数 * 1.定义一个计数器 * 2.获取str第一次出现的位置 * 3.从第一次获取位置开始往后继续获取出现的位置,出现一次计数器加1 * 4.当获取不到时,计数器就是次数(计数完成) public static voidmain(String[] args) { } public static intgetStringCount(String s,String str){ int count = 0; int index = 0; while((index=s.indexOf(str))!=-1){//当值等于-1时证明找不到了 str=s.substring(index+str.length());//获取当前的字符串 count++; } returncount; } /**实例2:定义两个字符串s1,s2(假设s1>=s2),获取s1和s2最大相同的字符串 * 思路:将短的那个字符串以递减的方式与长的字符串进行比较, * 直到找到最大相同字符串 */ public staticString GetMaxSubString(String s1,String s2){ for(intx=0;x<s2.length();x++){ for(inty=0,z=s2.length()-x;z!=s2.length()+1;y++,z++){ String temp=s1.substring(y,z); if(s1.contains(temp)){ returntemp; } } } return ""; } 7.转换,去除空格,比较 7.1将字符串转换成大写或小写 String toUpperCase(); String toLowerCase(); 7.2将字符串两端的空格去除 String trim(); 实现函数: public staticString my_Trim(String str){ int start=0,end=str.length; while(end>=start && str.start==” “ ){ start++; } while((end>=start && str.end==” “){ end--; } return substring(strat,end); } 7.3对两个字符串进行自然顺序的比较 int compareTo(string); 8.StringBuffer 是一个容器 特点:1.长度可变 2.可以直接操作不同数据类型3.用toString()返回字符串 添加:StringBuffer append() 插入:StringBuffer insert(index,插入的数据); 删除:StringBuffer delete(start,end) 删除指定位置的字符StringBufferAt(index) 获取:int length();String substring();char charAt();int indexOf();intlastIndexOf(); 删除:StringBuffer replace(start,end,string); voidsetCharAt(index,char ch) 反转:StringBuffer reverse();
|