String类
● String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
● 字符串是常量,它们的值在创建之后不能更改。
● String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。
Java API 在线文档: http://docs.oracle.com/javase/7/docs/api/
String 类的常用方法
构造方法
要创建类String的一个对象并进行初始化,需要调用类 String的构造方法。类String中提供了下面的一些构造方法:
- 1、String( ) 无参数的缺省的构造方法用来创建一个空串。
String s = new String();
- 2、String( String original):利用已经存在的字符串常量创建一个新的String对象,该对象的内容与给出的字符串常量一致。
String s = new String("hello");
- 3、String( char value[ ] );通过给构造方法传递一个字符数组 可以创建一个非空串。
char chars[ ] = { 'a' , 'b' , 'c' };
String s = new String(chars);
- 4、String( char [ ] , int startIndex, int numChars ):这种方法用来创建一个非空串,并且指明所创建的字符串在字符数组中的起始地址以及所包含的字符个数。
char chars[] = { 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
String s = new String ( chars , 2 , 3 );//该方法生成的串s为“cde”。(注意数组的下标从0开始)
实例:
String str1 = new String();
String str2 = new String("abcd");
char[] charArray = new char[]{'D', 'E', 'F'};
String str3 = new String(charArray);
char chars[] = { 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
String s = new String ( chars , 2 , 3 );
System.out.println("a" + str1 + "b");
System.out.println(str2);
System.out.println(str3);
System.out.println(s);
字符串长度/字符串查找
int length() //返回字符串长度
char charAt(int index) //返回指定索引处的 char 值。
int indexOf(int ch) //返回指定字符在此字符串中第一次出现处的索引
int lastIndexOf(int ch) //返回指定字符在此字符串中最后一次出现处的索引。
实例:
String s = "abcdedcba";
System.out.println("字符串的长度为:" + s.length());
System.out.println("字符串中第一个字符:" + s.charAt(0));
System.out.println("字符c第一次出现的位置:" + s.indexOf('c'));
System.out.println("字符c最后一次出现的位置:" + s.lastIndexOf('c'));
字符串修改/替换
char[] toCharArray() //将此字符串转换为一个新的字符数组。
static String valueOf(int i) //返回 int 参数的字符串表示形式。
大小写的转换:
String toUpperCase(); //使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String toLowerCase(); //使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
实例:
String str = "abcd";
System.out.println("将字符串转为字符数组后的结果:");
char[] charArray = str.toCharArray();
for(int i = 0; i < charArray.length - 1; i++) {
if(i != charArray.length - 1) {
System.out.println(charArray[i]);
}else {
System.out.println(charArray[i]);
}
}
System.out.println("将int值转换为String类型之后的结果:" + String.valueOf(12));
System.out.println("将字符串转换成大写之后结果:" + str.toUpperCase());
//返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(char oldChar, char newChar);
//返回字符串的副本,忽略前导空白和尾部空白。
String trim();
实例:
String s = "lingdu";
//字符串的替换操作
System.out.println("将li替换成cn.li的结果" + s.replace("li", "cn.li"));
//字符串去除空格操作
String s1 = " l i n g d u ";
System.out.println("去除字符串两端空格后的结果:" + s1.trim());
System.out.println("去除字符串中所有空格后的结果:" + s1.replace(" ",""));
字符串比较
boolean startsWith(String prefix) //测试此字符串是否以指定的前缀开始。
boolean endsWith(String suffix) //测试此字符串是否以指定的后缀结束。
boolean contains(CharSequence s) //当且仅当此字符串包含指定的 char 值序列时,返回 true。
boolean isEmpty() 当且仅当 length() //为 0 时返回 true。
boolean equals(Object anObject) //将此字符串与指定的对象比较。
实例:
String s1 = "String";
String s2 = new String("Str");
System.out.println("判断是否以字符串Str开头:" + s1.startsWith("Str"));
System.out.println("判断是否以字符串ng结尾:" + s1.endsWith("ng"));
System.out.println("判断是否包涵字符串tri: " + s1.contains("tri"));
System.out.println("判断字符串是否为空:" + s1.isEmpty());
System.out.println("判断两个字符串是否相等:" + s1.equals(s2));
// == 和 quelas() 的区别
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1 == str2); //结果为false,因为str1和str2是两个对象
System.out.println(str1.equals(str2)); //结果为true,因为str1和str2字符内容相同
字符截取/分割
String substring(int beginIndex) //返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex,int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。
String[] split(String regex) //根据给定正则表达式的匹配拆分此字符串。
实例:
public static void main(String[] args) {
String str = "羽毛球-篮球-乒乓球 ";
//下面是字符串截取操作
System.out.println("从第5个字符截取到末尾的结果:" + str.substring(4));
System.out.println("从第5个字符截取到第6个字符的结果:" + str.substring(4, 6));
//下面是字符串分割操作
System.out.print("分割后的字符串数组中的元素依次为:");
String[] strArray = str.split("-");
for(int i = 0; i < strArray.length; i++) {
if( i != strArray.length - 1) {
System.out.print(strArray[i] + ",");
}else {
System.out.println(strArray[i]);
}
}
}