1、返回指定字符(字符串)的索引位置——indexOf()
int indexOf(char ch||String str) 返回指定字符(字符串)在此字符串中第一次出现处的索引
int indexOf(char ch||String str, int fromIndex) 返回在此字符串中第一次出现指定字符(字符串)处的索引,从指定的索引处开始检索
int lastIndexOf(char ch||String str) 返回指定字符(字符串)在此字符串中最后一次出现处的索引
int lastIndexOf(char ch||String str,int fromIndex) 返回指定字符(字符串)在此字符串中最后一次出现处的索引,从指定的索引处进行反向检索
注意: 无论使用什么检索方法,返回的索引值为唯一确定的索引值,而不是相对于 开始检索位置 的索引!
例:
public class StringAPIDemo01 { public static void main(String[] args) { String s = "abcbade"; int n1=s.indexOf('a'); //n1=0 int n2=s.lastIndexOf('a'); //n2=4 System.out.println("n1="+n1+",n2="+n2); int n3=s.indexOf('b',2); //n3=3 int n4=s.lastIndexOf('b',3); //n4=3 System.out.println("n3="+n3+",n4="+n4); int m1=s.indexOf("bc"); //m1=1 int m2=s.lastIndexOf("ab"); //m2=4 System.out.println("m1="+m1+",m2="+m2); } } |
2、获取其他类型(基本数据类型,Object类型)的字符串表达形式——valueOf()
static String |
valueOf(boolean b) |
static String |
valueOf(char c) |
static String |
valueOf(char[] data) |
static String |
valueOf(char[] data, int offset, int count) |
static String |
valueOf(double d) |
static String |
valueOf(float f) |
static String |
valueOf(int i) |
static String |
valueOf(long l) |
static String |
例:
public class StringAPIDemo02 { public static void main(String[] args) { char c[]={'a','b','c','d','e','f'}; int n=2016; String s1=String.valueOf(c); //字符或字符数组均可转换 String s2=String.valueOf(c,2,4); String s3=String.valueOf(n); //只有单个整型可转换,整型数组不行 System.out.println(s1); //abcdef System.out.println(s2); //cdef System.out.println(s3); //2016 } } |
3、获取给定的索引处的字符——char charAt(int index)
例:
public class StringAPIDemo03{ public static void main(String args[]){ String str1 = "java" ; // 定义String对象 System.out.println(str1.charAt(3)) ; // 取出字符串中第四个字符’a’ } } |
4、获取其他类型对象的字符串类型对象——toString()
注意:在转化时,基本类型数据必须通过其包装类才能调用toString()方法。
例:
public class StringAPIDemo04 { public static void main(String[] args) { Integer integer = new Integer(10); System.out.println(integer.toString());//10 Boolean bool = new Boolean(true); System.out.println(bool.toString());//true Float flo = new Float("6.66"); System.out.println(flo.toString());//6.66 StringBuffer stringBuffer = new StringBuffer("HelloWorld!"); System.out.println(stringBuffer.toString());//HelloWorld } } |
5、获取字符串长度——int length()
如果 length() 为 0,则返回 true;否则返回 false
例:
public class StringAPIDemo05 {public static void main(String[] args) { String s="java"; System.out.println(s.length()); //返回4 } } |
6、判断字符串是否为空——boolean isEmpty()
例:
public class StringAPIDemo06 {public static void main(String[] args) { String s1=""; String s2="java"; System.out.println(s1.isEmpty()); //返回true System.out.println(s2.isEmpty()); //返回false } } |
7、字符串与字符数组之间的转换:
字符串转为字符数组:public char[] toCharArray()
字符数组转为字符串: public String(char[] value)
publicString(char[] value,int offset,int count)
例:
public class StringAPIDemo07-1{ public static void main(String args[]){ String str1 = "hello" ; // 定义字符串 char c[] = str1.toCharArray() ; // 将一个字符串变为字符数组 for(int i=0;i<c.length;i++) // 循环输出字符数组 {System.out.print(c[i] + "、") ; } System.out.println("") ; // 换行 String str2 = new String(c) ; // 将全部的字符数组变为String String str3 = new String(c,0,3) ; // 将部分字符数组变为String System.out.println(str2) ; // 输出字符串 System.out.println(str3) ; // 输出字符串 } } |
字符数组转化为字符串还可以通过如下方法:
String copyValueOf(char[] data)
data
- 字符数组; 返回:一个 String,它包含字符数组的字符。
String copyValueOf(char[] data, int offset, int count)
data - 字符数组。offset - 子数组的初始偏移量。count - 子数组的长度;返回:一个 String,它包含字符数组的指定子数组的字符。
例:
public class StringAPIDemo07-2 {public static void main(String[] args) { char[] c=new char[]{'a','b','c','d'}; System.out.println(String.copyValueOf(c)); /*返回有c中所有元素构成的字符串,相当于String s=new String(c); 结果就是产生一个 "abcd "字符串*/
System.out.println(String.copyValueOf(c,2,2)); /*返回由c中从下标2的元素(就是 'c ')开始,长度为2的元素构成的字符串, 结果就是产生一个 "cd "字符串。*/ } } |
8、字符串与字节数组之间的转换:
字符串转字节数组:public byte[] getBytes()
字符数组转字符串:public String(byte[] bytes)
public String(byte[] bytes,int offset,int length)
例:
public class StringAPIDemo08{ public static void main(String args[]){ String str1 = "hello" ; // 定义字符串 byte b[] = str1.getBytes() ; // 将字符串变为byte数组 System.out.println(new String(b)) ; // 将全部的byte数组变为字符串 System.out.println(new String(b,1,3)) ; // 将部分的byte数组变为字符串 } } |
9、字符串与整型数组间的转换:
字符串不能直接转化为整数数组,可以通过在遍历字符串过程中通过Integer.parseInt()方法构造整形数组。
public class StringAPIDemo09 {public static void main(String[] args) { //字符串转为整型数组: String s1="123456789"; int n1[]=new int[s1.length()]; for(int i=0;i<n1.length;i++) n1[i]=Integer. parseInt(String.valueOf(s1.charAt(i)));
//整型数组转为字符串: int n2[]={1,2,3}; String s2=""; for(int i=0;i<n2.length;i++) s2+=Integer.toString(n2[i]); System.out.println(s2); } } |
10、比较两个字符串大小(通过Unicode码)——compareTo()
int compareTo(String anotherString) //区分大小写
int compareToIgnoreCase(String str) //不区分大小写
例:
public class StringAPIDemo10 {public static void main(String[] args) { String s1="abc"; String s2="aBc"; //A的Unicode码为65,a的Unicode码为97,所以A<a if(s1.compareTo(s2)>0) System.out.println("s1>s2"); if(s1.compareTo(s2)==0) System.out.println("s1==s2"); if(s1.compareTo(s2)<0) System.out.println("s1<s2"); } } |
11、比较字符串内容是否相同——equals()
boolean equals(Object anObject) 考虑大小写
boolean equalsIgnoreCase(String anotherString) 不考虑大小写
注意:String类重写了Object类的equals()方法,从返回"=="结果(即为内存中地址是否相同)改为了比较字符串内容是否相同。
例:
public class StringAPIDemo11 {public static void main(String[] args) { String s1 = "abcd"; String s2 = "Abcd"; System.out.println("s1是否等于s2:"+s1.equals(s2)); //false System.out.println("s1是否等于s2:"+s1.equalsIgnoreCase(s2)); //true } } |
12、将指定字符串连接到此字符串的结尾——String concat(String str)
例:
public class StringAPIDemo12 {public static void main(String[] args) { String s1="abc"; String s2="def"; System.out.println(s1.concat(s2)); //输出:abcdef } } |
13、返回字符串的子串:
String substring(int beginIndex): 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。 参数:beginIndex起始索引(包括)。
String substring(int beginIndex,int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 参数:beginIndex起始索引(包括);endIndex结束索引(不包括)。
例:
public class StringAPIDemo13 {public static void main(String[] args) { String s="java word"; System.out.println(s.substring(1)); //返回“ava word” System.out.println(s.substring(1,6)); //返回“ava w” } } |
14、测试字符串是否以指定的前缀开始或以指定后缀结束:
boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始
boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束
例:
public class StringAPIDemo14 {public static void main(String[] args) { String str1 = "**HELLO" ; // 定义字符串 String str2 = "HELLO**" ; // 定义字符串 if(str1.startsWith("**")) // 判断是否以“**”开头 {System.out.println(str1+"以**开头") ;} if(str2.endsWith("**")) // 判断是否以“**”结尾 {System.out.println(str2+"以**结尾") ;} } } |
15、大小写字母间的转换:
String toLowerCase() 将 String 中的所有字符都转换为小写
String toUpperCase() 将 String 中的所有字符都转换为大写
例:
public class StringAPIDemo15 {public static void main(String[] args) { String s1 = "Hello"; System.out.println(s1.toLowerCase());//hello System.out.println(s1.toUpperCase());//HELLO } } |
16、去除字符串前后空格——String trim()
返回字符串的副本,忽略前导空白和尾部空白
例:
public class StringAPIDemo16 {public static void main(String[] args) { String s1=" java word "; String s2=" "; String a="a"; String b="b"; System.out.println(s1.trim()); //返回“java word” System.out.println(a+s2.trim()+b); //返回“ab”,s2.trim()为空字符串”” } } |
17、替换字符串:
String replace(char oldChar,char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
String replace(char oldStr,char newStr) 返回一个新的字符串,它是通过用 newStr 替换此字符串中出现的所有 oldStr 得到的
例:
public class StringAPIDemo17 {public static void main(String[] args) { String s="java"; System.out.println(s.replace('a','A')); //返回“jAvA” System.out.println(s.replace("ja","JA")); //返回“JAva” } } |
18、拆分字符串——String[ ] split(String regex)
根据给定正则表达式的匹配拆分此字符串
例:
public class StringAPIDemo18 {public static void main(String[] args) { String s1="hellobbjavabword"; String[] s2=s1.split("b"); System.out.println(s2.length); //返回4 for(int i=0;i<s2.length;i++) System.out.println("s["+i+"]="+s2[i]); /*s[0]=hello ,s[1]= ,s[2]=java ,s[3]=word, 若split里的参数重复出现多次去掉一个,剩下的为空字符串 如s1中出现bb,所以s2[1]="" */ String a="a"; String b="b"; System.out.println(a+s2[1]+b);//返回ab } } |
(原版来自于网络,重新整理)