android字符串string
String : 字符串类型
⼀、构造函数
String(byte[ ] bytes):通过byte数组构造字符串对象。
String(char[ ] value):通过char数组构造字符串对象。
String(Sting original):构造⼀个original的副本。即:拷贝⼀个original。
String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。
例如:
byte[] b = {'a','b','c','d','e','f','g','h','i','j'};
char[] c = {'0','1','2','3','4','5','6','7','8','9'};
String sb = new String(b); //abcdefghij
String sb_sub = new String(b,3,2); //de
String sc = new String(c); //0123456789
String sc_sub = new String(c,3,2); //34
String sb_copy = new String(sb); //abcdefghij
System.out.println("sb:"+sb);
System.out.println("sb_sub:"+sb_sub);
System.out.println("sc:"+sc);
System.out.println("sc_sub:"+sc_sub);
System.out.println("sb_copy:"+sb_copy);
输出结果:sb:abcdefghij
sb_sub:de
sc:0123456789
sc_sub:34
sb_copy:abcdefghij
⼆、⽅法:
说明:①、所有⽅法均为public。
②、书写格式: [修饰符] <;返回类型><⽅法名([参数列表])>
例如:static int parseInt(String s)
表⽰此⽅法(parseInt)为类⽅法(static),返回类型为(int),⽅法所需要为String类型。
1. char charAt(int index) :取字符串中的某⼀个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。
例如:String s = new String("abcdefghijklmnopqrstuvwxyz");
System.out.println("s.charAt(5): " + s.charAt(5) );
结果为: s.charAt(5): f
2. int compareTo(String anotherString) :当前String对象与anotherString⽐较。相等关系返回0;不相等时,从两个字符串第0个字符开始⽐较,返回第⼀个不相等的字符差,另⼀种情况,较长字符串的前⾯部分恰巧是较短的字符串,返回它们的长度差。
3. int compareTo(Object o) :如果o是String对象,和2的功能⼀样;否则抛出ClassCastException异常。
例如:String s1 = new String("abcdefghijklmn");
String s2 = new String("abcdefghij");
String s3 = new String("abcdefghijalmn");
System.out.println("s1pareTo(s2): " + s1pareTo(s2) ); //返回长度差
System.out.println("s1pareTo(s3): " + s1pareTo(s3) ); //返回'k'-'a'的差
结果为:s1pareTo(s2): 4
s1pareTo(s3): 10
4. String concat(String str) :将该String对象与str连接在⼀起。
5. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进⾏⽐较。
6. static String copyValueOf(char[] data) :
7. static String copyValueOf(char[] data, int offset, int count) :这两个⽅法将char数组转换成String,与其中⼀个构造函数类似。
8. boolean endsWith(String suffix) :该String对象是否以suffix结尾。
例如:String s1 = new String("abcdefghij");
String s2 = new String("ghij");
System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );
结果为:s1.endsWith(s2): true
9. boolean equals(Object anObject) :当anObject不为空并且与当前String对象⼀样,返回true;否则,返回false。
10. byte[] getBytes() :将该String对象转换成byte数组。
11. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该⽅法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为⽬标字符数组、dstBegin为⽬标字符数组的拷贝起始位置。
例如:char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!
String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!
System.out.println( s1 );
结果为:I love you!
12. int hashCode() :返回当前字符的哈希表码。
13. int indexOf(int ch) :只第⼀个匹配字符位置。
14. int indexOf(int ch, int fromIndex) :从fromIndex开始第⼀个匹配字符位置。
15. int indexOf(String str) :只第⼀个匹配字符串位置。
16. int indexOf(String str, int fromIndex) :从fromIndex开始第⼀个匹配字符串位置。
例如:String s = new String("write once, run anywhere!");
String ss = new String("run");
System.out.println("s.indexOf('r'): " + s.indexOf('r') );
System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) );
System.out.println("s.indexOf(ss): " + s.indexOf(ss) );
结果为:s.indexOf('r'): 1
s.indexOf('r',2): 12
s.indexOf(ss): 12
17. int lastIndexOf(int ch)
18. int lastIndexOf(int ch, int fromIndex)
19. int lastIndexOf(String str)
20. int lastIndexOf(String str, int fromIndex) 以上四个⽅法与13、14、15、16类似,不同的是:最后⼀个匹配的内容。
public class CompareToDemo {
public static void main (String[] args) {
String s1 = new String("acbdebfg");
System.out.println(s1.lastIndexOf((int)'b',7));
}
}
运⾏结果:5
(其中fromIndex的参数为 7,是从字符串acbdebfg的最后⼀个字符g开始往前数的位数。既是从字符c开始匹配,寻最后⼀个匹配b的位置。所以结果为 5)
21. int length() :返回当前字符串长度。
22. String replace(char oldChar, char newChar) :将字符号串中第⼀个oldChar替换成newChar。
23. boolean startsWith(String prefix) :该String对象是否以prefix开始。
24. boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。
例如:String s = new String("write once, run anywhere!");
String ss = new String("write");
String sss = new String("once");
System.out.println("s.startsWith(ss): " + s.startsWith(ss) );
System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );
结果为:s.startsWith(ss): true
s.startsWith(sss,6): true
25. String substring(int beginIndex) :取从beginIndex位置开始到结束的⼦字符串。
26.String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的⼦字符串。
27. char[ ] toCharArray() :将该String对象转换成char数组。
28. String toLowerCase() :将字符串转换成⼩写。
29. String toUpperCase() :将字符串转换成⼤写。
例如:String s = new String("java.lang.Class String");
System.out.println("s.toUpperCase(): " + s.toUpperCase() );
System.out.println("s.toLowerCase(): " + s.toLowerCase() );
结果为:s.toUpperCase(): JAVA.LANG.CLASS STRING
30. static String valueOf(boolean b)
31. static String valueOf(char c)
32. static String valueOf(char[] data)
33. static String valueOf(char[] data, int offset, int count)
34. static String valueOf(double d)
35. static String valueOf(float f)
36. static String valueOf(int i)
37. static String valueOf(long l)
38. static String valueOf(Object obj)
以上⽅法⽤于将各种不同类型转换成Java字符型。这些都是类⽅法。
Java中String类的常⽤⽅法:
public char charAt(int index)
返回字符串中第index个字符;
public int length()
返回字符串的长度;
public int indexOf(String str)
返回字符串中第⼀次出现str的位置;
public int indexOf(String str,int fromIndex)
返回字符串从fromIndex开始第⼀次出现str的位置;
public boolean equalsIgnoreCase(String another)
⽐较字符串与another是否⼀样(忽略⼤⼩写);
public String replace(char oldchar,char newChar)
在字符串中⽤newChar字符替换oldChar字符
public boolean startsWith(String prefix)
判断字符串是否以prefix字符串开头;
public boolean endsWith(String suffix)
判断⼀个字符串是否以suffix字符串结尾;
public String toUpperCase()
返回⼀个字符串为该字符串的⼤写形式;
public String toLowerCase()
返回⼀个字符串为该字符串的⼩写形式
public String substring(int beginIndex)
返回该字符串从beginIndex开始到结尾的⼦字符串;
public String substring(int beginIndex,int endIndex)
返回该字符串从beginIndex开始到endsIndex结尾的⼦字符串
public String trim()
返回该字符串去掉开头和结尾空格后的字符串
public String[] split(String regex)
将⼀个字符串按照指定的分隔符分隔,返回分隔后的字符串数组
实例:
public class SplitDemo{
public static void main (String[] args) {
String date = "2008/09/10";
String[ ] dateAfterSplit= new String[3];
dateAfterSplit=date.split("/"); //以“/”作为分隔符来分割date字符串,并把结果放⼊3个字符串中。 for(int i=0;i<dateAfterSplit.length;i++)
System.out.print(dateAfterSplit[i]+" ");
}
}
运⾏结果:2008 09 10 //结果为分割后的3个字符串
实例:
TestString1.java:
程序代码
public class TestString1
{
public static void main(String args[]) {
字符串长度与大小
String s1 = "Hello World" ;
String s2 = "hello world" ;
System.out.println(s1.charAt(1)) ;
System.out.println(s2.length()) ;
System.out.println(s1.indexOf("World")) ;
System.out.println(s2.indexOf("World")) ;
System.out.println(s1.equals(s2)) ;
System.out.println(s1.equalsIgnoreCase(s2)) ;
String s = "我是J2EE程序员" ;
String sr = s.replace('我','你') ;
System.out.println(sr) ;
}
}
TestString2.java:
程序代码
public class TestString2
{
public static void main(String args[]) {
String s = "Welcome to Java World!" ;
String s2 = " magci " ;
System.out.println(s.startsWith("Welcome")) ;
System.out.dsWith("World")) ;
String sL = s.toLowerCase() ;
String sU = s.toUpperCase() ;
System.out.println(sL) ;
System.out.println(sU) ;
String subS = s.substring(11) ;
System.out.println(subS) ;
String s1NoSp = s2.trim() ;
System.out.println(s1NoSp) ;
}
String类主要⽅法的使⽤:
1、获取长度 *.length();//这与数组中的获取长度不同,*.length;
2、⽐较字符串(1) equals() //判断内容是否相同
(2)compareTo() //判断字符串的⼤⼩关系
(3)compareToIgnoreCase(String int) //在⽐较时忽略字母⼤⼩写
(4)== //判断内容与地址是否相同
(5)equalsIgnoreCase() //忽略⼤⼩写的情况下判断内容是否相同
如果想对字符串中的部分内容是否相同进⾏⽐较,可以⽤
(6)reagionMatches() //有两种 public boolean regionMatches(int toffset, String other,int ooffset,int len);表⽰如果String对象的⼀个⼦字符串与参数other的⼀个⼦字符串是相同的字符序列,则为true.要⽐较的String 对象的字符串从索引toffset开始,other的字符串从索引ooffset开始,长度为len。
public boolean reagionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);//⽤布尔类型的参数指明两个字符串的⽐较是否对⼤⼩写敏感。
⼀、查字符串中某个位置的字符
public char charAt(int index);//返回指定索引index位置上的字符,索引范围从0开始
四、查指定字符串在字符串中第⼀次或最后⼀词出现的位置
在String类中提供了两种查指定位置的字符串第⼀次出现的位置的⽅法
(1)public int indexOf(String str);//从字符串开始检索str,并返回第⼀次出现的位置,未出现返回-1
(2)public int indexOf(String str,int fromIndex);//从字符串的第fromIndex个字符开始检索str
查最后⼀次出现的位置有两种⽅法
(1)public int lastIndexOf(String str);
(2)public int lastIndexOf(String str,int fromIndex);
如果不关⼼字符串的确切位置则可使⽤public boolean contains(CharSequence s);
⼆、检查字符串的起始字符和结束字符
开始的字符串两种⽅法
(1)public boolean starWith(String prefix,int toffset);//如果参数prefix表⽰的字符串序列是该对象从索引toffset处开始的⼦字符串,则返回true
(2)public boolean starWith(String prefix);
结束的字符串⽅法
public boolean endsWith(String suffix);
三、截取⼦串
(1)public String subString(int beginIndex);
(2)public String subString(int beginIndex,int endIndex);//返回的字符串是从beginIndex开始到endIndex-1的串
要返回后4位可以这样写Syetem.out.println(*.subString()(*.length()-4));
四、字符串的替换
两种⽅法
(1)public String replace(char oldChar,char newChar);
(2)public String replace(CharSequence target,CharSequence replacement);//把原来的etarget⼦序列替换为replacement序列,返回新串
(3)public String replaceAll(String regex,String replacement);//⽤正则表达式实现对字符串的匹配
五、字符串的⼤⼩写替转换
(1)public String toLowerCase(Locale locale);
(2)public String toLowerCase();
(3)public String toupperCase(Locale locale);
(4)public String toUpperCase();
六、去除字符串⾸尾空格
*.trim();
七、字符串转换
1、将字符串转换成字符数组
public char[] toCharArray();
2、将字符串转换成字符串数组
public String[] split(String regex);//regex 是给定的匹配
3、将其它数据类型转化为字符串
(1)public static String valueOf(boolean b);
(2)public static String valueOf(char c);
(3)public static String valueOf(int i);
(4)public static String valueOf(long i);
(5)public static String valueOf(float f);
(6)public static String valueOf(double d);
(7)public static String valueOf(char[] data);
(8)public static String valueOf(Object obj);
可变字符串的创建和初始化
两种⽅法:
public StringBuffer();
public StringBuffer(int caoacity);
StringBuffer类主要⽅法的使⽤:
⼀、获取可变字符串长度
(1)public int length();
(2)public int capacity();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论