int length()获取字符串长度 char charAt()根据位置获取某个字符,没有找到返回-1,超出索引范围,返回异常 int indexOf(int ch)返回ch在字符串第一次出现的位置 int indexOf(int ch,int fromIndex)从fromIndex指定的位置开始,ch在字符串中出现的位置 int indexOf(String str)返回str在字符串第一次出现的位置 int indexOf(String str,int fromIndex)从fromIndex指定的位置开始,str在字符串中出现的位置二、判断
boolean contains(str)是否包含一个子串 indexOf(str)不包含返回-1,也可以用来判断 boolean isEmpty()字符串是否有内容,原理是判断字符串长度是否为0 boolean startsWith(str)是否以指定内容开头 boolean endsWith(str)是否以指定内容结尾 boolean equals(str)判断字符串内容是否相同 boolean equalsIgnoreCase();忽略大小写判断内容是否相同三、转换:字符串和字节数组在转换过程中可以指定编码
3.1将字符数组转成字符串 构造函数:String(char[]) String(char[],int offset,int count)将字符数组中的一部分转成字符串 静态方法 static String copyValueOf(char[]) static String copyValueOf(char[],int count) static String valueOf(char[]) 3.2将字符串转换成字符数组 char[] tocharArray() 3.3将字节数组转成字符串 String(byte[]) String(byte[],int count) 3.4将字符串转成字节数组 byte[] getBytes(); 3.5将基本数据类型转成字符串 static String valueOf(int) static String valueOf(double) 3+"" --- String.valueOf(3)四、替换
String replace(char,char); String replace(CharSequence target,CharSequence replacement)五、切割
String[] split(regex);六、子串:获取字符串中的一部分
String substring(int begin);超出范围抛异常 String substring(int begin,ine end )七、转换,除去空格,比较
7.1转换字符串大小写 String toUpperCase();String toLowerCase() 7.2去除字符串两端空格 String trim(); String trimString(String str){ int src = 0,end = str.length()-1; //从0依次判断是否为空格,不是空格就停止循环,开始角标小于末尾角标 while((src<end)&&(str.charAt(src)==' ')) src++; //从后向前判断是否为空格 while((src<end)(str.charAt(end)==' ')) end--; //截取子串,包含头不包含尾,end+1 return str.subString(src,end+1); } 7.3对两个字符串进行自然顺序的比较 int compareTo(String); <span style="color:#ff6666;">获取两个字符串的最大相同子串</span>: String getMaxString(String s1,String s2){ //遍历整个小的字符串 for(int i=0;i<s2.length();i++){ //能获得全部的子串就可以判断 for(int x=0,y=s2.length-0;y!=s2.length()+1;x++,y++){ String temp = s2.substring(x,y); if(s1.contains(temp)) return temp; } } return null; }StringBuffer容器
C create U update R read D delete 1,存储 StringBuffer append():将指定数据添加到末尾 StringBuffer insert(index,数据):数据插到指定位置 2,删除 StringBuffer delete(start,end):删除缓冲区中指定数据,包含头不包含尾清空--delete(0,length()) StringBuffer deleteCharAt():删除指定位置的字符 3,获取 char charAt(int index) int indexOf(String str) int lastIndexOf(String str) int length() String substring(int start,int end) 4,修改 StringBuffer replace(start,end string) void setCharAt(int index,char ch)StringBuffer反转
String reverseString(String str,int src,int end){ //将字符串变成字符数组 char[] ch = str.tocharArray(); //反转字符数组 reverseChar(ch,src,end); //将字符数组变成字符串 return new String(ch); } void reverseChar(char[] ch,int end){ char temp = ' '; //交换前后两个对应的字符 for(;src<end;src++,end--){ temp = ch[src]; ch[src] = ch[end]; ch[end] = temp; } }将缓冲区中的指定数据存储到指定的字符数组中
基本数据类型转字符串:基本数据类型+"" , 基本数据类型.toString(基本数据类型值) 字符串转成基本数据类型: xxx a=Xxx.parseXxx(String);String必须是要转换的数据格式 int a=Integer.parseInt("123"); boolean b=Boolean.parseBoolean("true"); Integer i = new Integer("123"); int num = i.inValue(); 十进制转成其他进制 toBinaryString();toHexString();toOctalString(); 其他进制转成十进制 parseInt(string,radix);<strong> </strong>=================================================================================== @H_404_3@ 正则表达式:符合一定规则的表达式,操作字符串
<span style="white-space:pre"> </span>一个位上的字符:[a-z],[a-zA-Z],[a-d[m-p]],[^a-z],[0-9] 预定义字符:"."任意字符,\d,0-9的数字 \D非数字 \w,单词字符[a-zA-Z_0-9]\W非单词 数量词:? 0次或者1次 * 0次或多次 + 一次或多次 {n}恰好n次 {n,}至少n次 {n,m}n-m次二、切割 String split() @H_404_3@
注意:正则表达式中使用"\\"一个只是转义字符 // . 为特殊字符 String str = "abc.cde.efg";String[] arr = str.split("\\."); 组的概念:为了让规则得到重用,用()将规则封装成组,组的出现否有编号 从1开始,使用已有的组通过\n(n为组的编号,最左边括号的次序)的形式获取 //分隔叠词,\\1使用第一个组,+出现1次或者多次 "abccdeffffghiij".split("(.)\\1+");三、替换 String replaceAll()
$:获得前一个规则中的组,$n,n表示组的编号 //将叠词换成单个字符 "abccdeffffghiij".replaceAll("(.)\\1+","$1");四、 获取
import java.util.regex.*; String str = ""; String regex = "\\b[a-z]{3}";// \\b为单词边界 //将规则封装成对象 Pattern p = Pattern.compile(regex); //让正则对象和要作用的字符串相关类 Mather m = p.mather(str); m.matches();//String 的matches对此进行了封装 //将规则作用于字符串,并进行符合规则的子串查找,记录位置向后查找 while(m.find()){//先找再取 m.group();//获取匹配后的结果 m.start();//匹配子串的开始位置,m.end(),结束位置 }