一、String类
//在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
//String greeting = "菜鸟教程";
char[] helloArray = {'h', 'e', 'l', 'l', 'o'}; String helloString = new String(helloArray); System.out.println("helloString=" + helloString);//helloString=hello //注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了 //如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
//①字符串长度 length() 方法,它返回字符串对象包含的字符数。
String site = "www.baidu.com"; int len = site.length(); System.out.println("长度为:" + len);//长度为:13
//②连接字符串 //string1.concat(string2);
//返回 string2 连接 string1 的新字符串。也可以对字符串常量使用 concat() 方法 "我的名字是 ".concat("Hello"); //更常用的是使用'+'操作符来连接字符串,如 //"Hello," + " World" + "!"; String name = "我的名字".concat("Steven"); System.out.println(name);//我的名字Steven
//③创建格式化字符串
//输出格式化数字可以使用 printf() 和 format() 方法。 //String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象 //String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。 double i = 1.2; float floatC = (float)i ; int intA = 1; String stringA = "stringA"; System.out.printf("浮点型变量的值为 " + "%f, 整型变量的值为 " + " %d, 字符串变量的值为 " + "is %s", floatC, intA, stringA); //浮点型变量的值为 1.200000, 整型变量的值为 1, 字符串变量的值为 is stringA //你也可以这样写 String fs; fs = String.format("浮点型变量的值为 " + "%f, 整型变量的值为 " + " %d, 字符串变量的值为 " + " %s", floatC, intA, stringA);
//String 方法
//①charAt() 方法 返回指定索引处的 char 值。
char result = name.charAt(2);//我的名字Steven System.out.println(result);//名
//②compareTo() 方法 用于两种方式的比较
//A.字符串与对象进行比较。 //B.按字典顺序比较两个字符串。 /* 如果参数字符串等于此字符串,则返回值 0; 如果此字符串小于字符串参数,则返回一个小于 0 的值; 如果此字符串大于字符串参数,则返回一个大于 0 的值。 */ String str1 = "Strings"; String str2 = "Strings"; String str3 = "Strings123"; int resultA = str1.compareTo( str2 );//0 System.out.println(resultA); resultA = str2.compareTo( str3 );//-3 str2<str3 System.out.println(resultA); resultA = str3.compareTo( str1 );//3 str3>str1 System.out.println(resultA);
//③compareToIgnoreCase() 方法 按字典顺序比较两个字符串,不考虑大小写。
二、StringBuffer 和 StringBuilder 类
//当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
//和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
//StringBuilder和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)
//由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
StringBuffer sBuffer = new StringBuffer("百度官网:"); sBuffer.append("www"); sBuffer.append(".baidu"); sBuffer.append(".com"); System.out.println(sBuffer);//百度官网:www.baidu.com
//StringBuffer 方法
//1 public StringBuffer append(String s) //将指定的字符串追加到此字符序列。 //2 public StringBuffer reverse() // 将此字符序列用其反转形式取代。 //3 public delete(int start, int end) //移除此序列的子字符串中的字符。 //4 public insert(int offset, int i) //将 int 参数的字符串表示形式插入此序列中。 //5 replace(int start, int end, String str) //使用给定 String 中的字符替换此序列的子字符串中的字符。
//下面的列表里的方法和 String 类的方法类似:
//①int capacity() //返回当前容量 //②char charAt(int index) //返回此序列中指定索引处的 char 值。 //③void ensureCapacity(int minimumCapacity) //确保容量至少等于指定的最小值。 //④String toString() //返回此序列中数据的字符串表示形式。