String介绍
String 是不可变对象
java.lang.String 使用了final修饰,不能被继承。
String 采用 Unicode编码方式。
字符串存储在常量池中(即存在同时引用同一个字符串的情况)。
String常用功能
.length :取得字符串所占字符(char)的长度,标点及中英文皆只算一个。
.indexOf :从一个字符串检索另一个字符串(可添加检索的起始位置),返回第一次出现的位置。
.lastIndexOf : 返回最后一次出现的位置(可添加检索的起始位置)。
.substring : 返回截取的字符串
.trim : 去掉字符串前后的空格。
.charAt : 返回指定位置的字符。
.startsWith : 检查是否以某个字符串开头
.endsWith : 检查是否以某个字符串结尾
.toUpperCase : 小写字母转为大写
.toLowerCase : 大写字母转为小写
String.valueOf(value);//将value值转为字符串形式。
StringBuilder介绍及其常用功能
StringBuilder 封装可变字符串
通过构造方法改变其封装的字符序列。
Public StringBuilder()
Public StringBuilder(String str)
.append : 追加字符串
.insert : 插入字符串
.delete : 删除sta—stop字符串
.replace : 删除+插入
.reverse : 字符串反转。
.toString : 转为常量字符串
/**
* 测试String/StringBuilder 的 API 功能。
* @author Du
* @version 0.0
* @see
* @since jdk1.8.0_73
*
* */
public class StringTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//test1();//测试常量池
//test2();//获取字符串长度
//test3();//检索字符串
//test4();//截取字符串
//test5();//截取字符串
//test6();//遍历字符串
//test7();//检测字符串开头与结尾
//test8();//字符串大小写
//test9();//值转换为字符串
test10();//可变字符串及其操作
}
/**
* 1、测试字符串常量池
*
**/
public static void test1() {
String str1 = "duzp";
String str2 = "duzp";
String str3 = new String("duzp");
if (str1 == str2)System.out.println("str1 == str2 true");
else System.out.println("str1 == str2 false");
if (str1 == str3)System.out.println("str1 == str3 true");
else System.out.println("str1 == str3 false");
if (str1.equals(str2))System.out.println("str1 equal str2 true");
else System.out.println("str1 equal str2 false");
if (str1.equals(str3))System.out.println("str1 equal str3 true");
else System.out.println("str1 equal str3 false");
str2 = str2+"!";
System.out.println("str1 = " + str1 + "\nstr2 = " + str2);
}
/**
* 2、获取字符串对象的长度(.length)
*
**/
public static void test2() {
String str1 = "12三4567";
String str2 = "123四5";
System.out.println("str1 = " + str1
+ "\nstr2 = " + str2);
System.out.println("str1.length = " + str1.length()
+ "\nstr2.length = " + str2.length()
+ "\nstr1+str2.length = " + (str1 + str2).length());
}
/**
* 3、检索字符串 (.indexOf/.lastIndexOf)
* 检索为左闭有开
**/
public static void test3() {
String str1 = "123456712345671234567";
System.out.println("str1 = " + str1);
System.out.println("34(first) in " + str1.indexOf("34")
+ "\n34(second) in "
+ str1.indexOf("34", str1.indexOf("34")+1)
+ "\n34(last) in " + str1.lastIndexOf("34"));
}
/**
* 4、截取字符串 (.substring)
*
**/
public static void test4() {
String str1 = "123456712345671234567";
System.out.println("str1 = " + str1);
System.out.println("sub 3 to 7 = " + str1.substring(3, 7)
+ "\nsub 10 to last = " + str1.substring(3));
}
/**
* 5、去除字符串前后空格(.trim)
*
**/
public static void test5() {
String str1 = " 67123456712 ";
System.out.println("str1 = " + str1);
System.out.println("str1(trim) = " + str1.trim());
}
/**
* 6、遍历字符串的每一个字符(.charAt)
*
**/
public static void test6() {
String str1 = "1234567890";
System.out.println("str1 = " + str1);
for (int i = 0; i< str1.length(); i++)
{
System.out.print(str1.charAt(i) + " ");
}
}
/**
* 7、检测字符串的开头和结尾(.startsWith/endsWith)
*
**/
public static void test7() {
String str1 = "1234567890";
System.out.println("str1 = " + str1);
System.out.println("start with 124 ? " + str1.startsWith("124")
+ "\nstart with 123 ? " + str1.startsWith("123")
+ "\nend with 890 ? " + str1.endsWith("890"));
}
/**
* 8、英文大小写转换(.toUpperCase/toLowerCase)
*
**/
public static void test8() {
String str1 = "DuzhoNgpeI";
System.out.println("str1 = " + str1);
System.out.println("toLower :" + str1.toLowerCase()
+ "\ntoUpper :" + str1.toUpperCase() );
}
/**
* 9、将值转为字符串(.valueOf)
*
**/
public static void test9() {
int iValue = 123;
double dValue = 123.123;
System.out.println("iValue = " + iValue
+ "\ndValue = " + dValue);
System.out.println("iValueStr :" + String.valueOf(iValue)
+ "\ndValueStr :" + String.valueOf(dValue) );
}
/**
* 10、可变字符串StringBuilder,(.append/insert/delete/replace/reverse)
*
**/
public static void test10() {
StringBuilder strB = new StringBuilder("aaa");
System.out.println("strB = " + strB);
System.out.println(strB + "\nappend bbbccc :" + (strB = strB.append("bbbccc"))
+ "\ninsert(c前) ddd :" + (strB = strB.insert(strB.toString().indexOf("ccc"), "ddd"))
+ "\ndelete bbb :" + strB.delete(strB.toString().indexOf('b'), strB.toString().lastIndexOf('b')+1)
+ "\nreplacd ddd to fff :" + strB.replace(strB.toString().indexOf('d'), strB.toString().lastIndexOf('d')+1, "fff")
+ "\nreverse :" + strB.reverse());
}
}