1、String类java
一、String类构造函数表正则表达式
String() 初始化一个新建立的 String 对象,使其表示一个空字符序列。 |
String(byte[] bytes) 经过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String 。 |
String(byte[] bytes, Charset charset) 经过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String 。 |
String(byte[] ascii, int hibyte) 已过期。 该方法没法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset 、字符集名称,或使用平台默认字符集的 String 构造方法。 |
String(byte[] bytes, int offset, int length) 经过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String 。 |
String(byte[] bytes, int offset, int length, Charset charset) 经过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String 。 |
String(byte[] ascii, int hibyte, int offset, int count) 已过期。 该方法没法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset 、字符集名称,或使用平台默认字符集的 String 构造方法。 |
String(byte[] bytes, int offset, int length, String charsetName) 经过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String 。 |
String(byte[] bytes, String charsetName) 经过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String 。 |
String(char[] value) 分配一个新的 String ,使其表示字符数组参数中当前包含的字符序列。 |
String(char[] value, int offset, int count) 分配一个新的 String ,它包含取自字符数组参数一个子数组的字符。 |
String(int[] codePoints, int offset, int count) 分配一个新的 String ,它包含 Unicode 代码点数组参数一个子数组的字符。 |
String(String original) 初始化一个新建立的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新建立的字符串是该参数字符串的副本。 |
String(StringBuffer buffer) 分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。 |
String(StringBuilder builder) 分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。 |
二、五种比较经常使用的构造方法(代码)数组
import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.TreeSet; public class javaTest2 implements javaTest1 { public static void main(String[] args) throws UnsupportedEncodingException { String str=new String(); str="abc"; String str1=new String("abc"); char []a={'a','b','c'}; String str2=new String(a); byte[]b={'a','b','c'}; String str3=new String(b,"UTF-8"); StringBuffer strb=new StringBuffer("abc"); String str4=new String(strb); System.out.println("str:"+str+" str1:"+str1+" str2:"+str2+" str3:"+str3+" str4:"+str4); } }
运行结果:函数
str:abc str1:abc str2:abc str3:abc str4:abc
三、String类相关的函数表测试
char |
charAt(int index) 返回指定索引处的 char 值。 |
int |
codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。 |
int |
codePointBefore(int index) 返回指定索引以前的字符(Unicode 代码点)。 |
int |
codePointCount(int beginIndex, int endIndex) 返回此 String 的指定文本范围中的 Unicode 代码点数。 |
int |
compareTo(String anotherString) 按字典顺序比较两个字符串。 |
int |
compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 |
String |
concat(String str) 将指定字符串链接到此字符串的结尾。 |
boolean |
contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。 |
boolean |
contentEquals(CharSequence cs) 将此字符串与指定的 CharSequence 比较。 |
boolean |
contentEquals(StringBuffer sb) 将此字符串与指定的 StringBuffer 比较。 |
static String |
copyValueOf(char[] data) 返回指定数组中表示该字符序列的 String。 |
static String |
copyValueOf(char[] data, int offset, int count) 返回指定数组中表示该字符序列的 String。 |
boolean |
endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 |
boolean |
equals(Object anObject) 将此字符串与指定的对象比较。 |
boolean |
equalsIgnoreCase(String anotherString) 将此 String 与另外一个 String 比较,不考虑大小写。 |
static String |
format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。 |
static String |
format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。 |
byte[] |
getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
byte[] |
getBytes(Charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。 |
void |
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) 已过期。 该方法没法将字符正确转换为字节。从 JDK 1.1 起,完成该转换的首选方法是经过 getBytes() 方法,该方法使用平台的默认字符集。 |
byte[] |
getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
void |
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符今后字符串复制到目标字符数组。 |
int |
hashCode() 返回此字符串的哈希码。 |
int |
indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 |
int |
indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 |
int |
indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。 |
int |
indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 |
String |
intern() 返回字符串对象的规范化表示形式。 |
boolean |
isEmpty() 当且仅当 length() 为 0 时返回 true。 |
int |
lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 |
int |
lastIndexOf(int ch, int fromIndex) 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |
int |
lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。 |
int |
lastIndexOf(String str, int fromIndex) 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |
int |
length() 返回此字符串的长度。 |
boolean |
matches(String regex) 告知此字符串是否匹配给定的正则表达式。 |
int |
offsetByCodePoints(int index, int codePointOffset) 返回此 String 中从给定的 index 处偏移 codePointOffset 个代码点的索引。 |
boolean |
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 |
boolean |
regionMatches(int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 |
String |
replace(char oldChar, char newChar) 返回一个新的字符串,它是经过用 newChar 替换此字符串中出现的全部 oldChar 获得的。 |
String |
replace(CharSequence target, CharSequence replacement) 使用指定的字面值替换序列替换此字符串全部匹配字面值目标序列的子字符串。 |
String |
replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串全部匹配给定的正则表达式的子字符串。 |
String |
replaceFirst(String regex, String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |
String[] |
split(String regex) 根据给定正则表达式的匹配拆分此字符串。 |
String[] |
split(String regex, int limit) 根据匹配给定的正则表达式来拆分此字符串。 |
boolean |
startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 |
boolean |
startsWith(String prefix, int toffset) 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |
CharSequence |
subSequence(int beginIndex, int endIndex) 返回一个新的字符序列,它是此序列的一个子序列。 |
String |
substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。 |
String |
substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。 |
char[] |
toCharArray() 将此字符串转换为一个新的字符数组。 |
String |
toLowerCase() 使用默认语言环境的规则将此 String 中的全部字符都转换为小写。 |
String |
toLowerCase(Locale locale) 使用给定 Locale 的规则将此 String 中的全部字符都转换为小写。 |
String |
toString() 返回此对象自己(它已是一个字符串!)。 |
String |
toUpperCase() 使用默认语言环境的规则将此 String 中的全部字符都转换为大写。 |
String |
toUpperCase(Locale locale) 使用给定 Locale 的规则将此 String 中的全部字符都转换为大写。 |
String |
trim() 返回字符串的副本,忽略前导空白和尾部空白。 |
static String |
valueOf(boolean b) 返回 boolean 参数的字符串表示形式。 |
static String |
valueOf(char c) 返回 char 参数的字符串表示形式。 |
static String |
valueOf(char[] data) 返回 char 数组参数的字符串表示形式。 |
static String |
valueOf(char[] data, int offset, int count) 返回 char 数组参数的特定子数组的字符串表示形式。 |
static String |
valueOf(double d) 返回 double 参数的字符串表示形式。 |
static String |
valueOf(float f) 返回 float 参数的字符串表示形式。 |
static String |
valueOf(int i) 返回 int 参数的字符串表示形式。 |
static String |
valueOf(long l) 返回 long 参数的字符串表示形式。 |
static String |
valueOf(Object obj) 返回 Object 参数的字符串表示形式。 |
四、字符串的经常使用操做ui
import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.TreeSet; public class javaTest2 implements javaTest1 { public static void main(String[] args) throws UnsupportedEncodingException { String str=new String(); str="ABC"; String str1=new String("abc"); char []a={'a','b','c'}; String str2=new String(a); byte[]b={'a','b','c'}; String str3=new String(b,"UTF-8"); StringBuffer strb=new StringBuffer("abc"); String str4=new String(strb); System.out.println("str:"+str+" str1:"+str1+" str2:"+str2+" str3:"+str3+" str4:"+str4); //获取字符串长度
System.out.println("str长度:"+str.length()); //字符串链接(两种)
str=str+str1; System.out.println("str:"+str); str2=str2.concat(str3); System.out.println("str2"+str2); //字符串比较(三种方法)
if(str.compareTo(str2)>0){ System.out.println("str排在str2以前!"); } if(str.compareTo(str2)<0){ System.out.println("str排在str2以后!"); }else{ System.out.println("str和str2字符内容相同!"); } if(str.equals(str2)){ System.out.println("str和str2字符内容相同!"); }else{ System.out.println("str和str2字符内容不一样!"); } if(str.equalsIgnoreCase(str2)){ System.out.println("str和str2字符表达相同!"); }else{ System.out.println("str和str2字符表达不一样!"); } //字符串截取 //从开始位置为2截取到末尾
String str5=str.substring(2); System.out.println("str5:"+str5); //从位置2-4截取
String str6=str2.substring(2, 4); System.out.println("str6:"+str6); //字符串查找
System.out.println("abc出如今str字符变量的第"+str.indexOf("abc")+"个位置上~"); System.out.println("abc出如今str字符变量的第"+str.indexOf("abc",1)+"个位置上~"); //查询不存在的字符串时
System.out.println("abc出如今str字符变量的第"+str.indexOf("abd",1)+"个位置上~"); //字符串大小写转换
String str7=str5.toUpperCase(); System.out.println("str5:"+str5); System.out.println("str7:"+str7); str7=str5.toLowerCase(); System.out.println("str5:"+str5); System.out.println("str7:"+str7); //字符串内容替换(三种都须要有返回值,并非直接对目标字符处理)
String str8=str7.replace('c', 'C'); System.out.println("str8:"+str8); String str9=str8.replaceFirst("ab", "AB"); System.out.println("str9:"+str9); String str10=str9.replaceAll("C", "c"); System.out.println("str10:"+str10); //获取字符串某位置的字符
char c1=str10.charAt(2); System.out.println("c1:"+c1); //判断一个字符串中是否有要查找的字符(有的话返回true、不然返回false)
System.out.println("str10中是否含有AB字符串:"+str10.contains("AB")); //判断字符串str10是否以cA开头
System.out.println("str10是否以cA开头:"+str10.startsWith("cA")); //判断字符串Str10是否以Bc结尾
System.out.println("Str10是否以Bc结尾:"+str10.endsWith("Bc")); //去掉先后的空白字符(但不能去掉中间的空白字符)
str10=" "+str10+" "+"ac"+" "; System.out.println("str10:"+str10); String str11=str10.trim(); System.out.println("str11:"+str11); //若是须要去掉字符串中间的空白符须要使用replace
String str12=str11.replace(" ", ""); System.out.println("str12:"+str12); } }
运行结果:编码
str:ABC str1:abc str2:abc str3:abc str4:abc str长度:3 str:ABCabc str2abcabc str排在str2以后! str和str2字符内容不一样! str和str2字符表达相同! str5:Cabc str6:ca abc出如今str字符变量的第3个位置上~ abc出如今str字符变量的第3个位置上~ abc出如今str字符变量的第-1个位置上~ str5:Cabc str7:CABC str5:Cabc str7:cabc str8:CabC str9:CABC str10:cABc c1:B str10中是否含有AB字符串:true str10是否以cA开头:true Str10是否以Bc结尾:true str10: cABc ac str11:cABc ac str12:cABcac
总结:查询完String类的API文档,没有找到String类对应的插入和删除方法,能够用两种思路去解决这个问题:spa
一、经过String类给定的replace方法,将想要删除和插入的语句经过replace替换成相应的字符串code
二、经过转换将String类字符串,转换成StringBuffer类型,而后经过调用StringBuffer的insert()和delete()方法实现。orm