赞
踩
字符串是一个字符序列。
char类型只能表示一个字符,为了表示一串字符,使用String(字符串)数据类型。
String实际上是java库中一个预定义的类。Stirng类型不是基本类型,而是引用类型。任何java类都可以将变量表示为一个引用类型。使用引用类型声明的变量成为引用变量,它引用的是一个对象。
String string = "Hello World!";
上述代码中,String是一个引用类型,string是一个引用变量,而它引用的是一个内容为 Hello World! 的字符串对象。
方法 | 描述 |
---|---|
length() | 返回字符串中的字符数 |
charAt(index) | 返回字符串s中指定位置的字符 |
concat(s1) | 将本字符串和字符串s1连接,返回一个新的字符串 |
toUpperCase() | 返回一个新的字符串,其中所有的字母大写 |
toLowerCase() | 返回一个新的字符串,其中所有的字母小写 |
trim() | 返回一个新的字符串,去掉了两边的空白字符 |
注:以上方法指定从一个特定的字符串实例来调用,因此,这些方法都是实例方法,非实例方法称为静态方法。静态方法可以不使用对象来调用。如,定义在Math类中的所有方法都是静态方法。它们没有绑定到一个特定的对象实例上。实例方法使用reference-Variable.methodName(arguments)来调用;静态方法则是用ClassName.methodName(arguments)来调用,如:
public class Test1 {
public static void main(String[] args) {
String string = "Hello World!";
System.out.println(string.length()); // 使用实例string来调用,实例方法
System.out.println(Math.pow(2, 3)); // 使用类名Math来调用,静态方法
}
}
/*output
12
8.0
*/
调用上述的length()方法。
注意:使用一个字符串时,往往是知道它的直接量的值的,为方便起见,Java允许再不创建新的变量的情况下,直接使用字符串直接量来引用字符串。即,允许 “Hello World!”.length() 这样的调用。其中 “” 表示空字符串,且"".length()为0.
public class Test2 {
public static void main(String[] args) {
System.out.println("Hello World!".length());
System.out.println("".length());
}
}
/*output
12
0
*/
方法s.charAt(index)可用于提取字符串s中下标为index的特定字符,其中index的值在 [0, s.length() - 1] 之间,字符串第一个字符的下标为0.
使用concat方法可连接两个字符串 String string3 = string1.concat(string2)。
除此自外,Java也提供了另外一种简便的方法连接字符串,使用加号(+)连接两个或多个字符串。
public class Test3 {
public static void main(String[] args) {
String string1 = "Hello";
String string2 = " World!";
String string3 = string1.concat(string2);
String string4 = string1 + string2 + "!!!";
System.out.println(string3);
System.out.println(string4);
}
}
/*output
Hello World!
Hello World!!!!
*/
两种连接方式是等价的。
加号也可以用于连接数字和字符串,但在这种情况下,会先将数字转换成字符串,再进行连接。
注意:若要使用加号连接字符串,至少要有一个操作数必须为字符串,如果操作数之一不是字符串,非字符串值先转换成字符串,再与另外的字符串连接。
如果操作数都不是字符串,加号就是一个将两个数字相加的加法操作符。
增强的 += 操作符也可用于字符串连接。
public class Test4 {
public static void main(String[] args) {
String string1 = "Hello" + " World!" + 123;
System.out.println(string1); // 连接字符串
System.out.println(1 + 2 + 'a'); // 加法操作符
string1 += string1;
System.out.println(string1);
}
}
/*output
Hello World!123
100
Hello World!123Hello World!123
*/
方法trim()通过删除字符串两端的空白字符返回一个新的字符串。其中,字符 ’ '、\t、\f、\r、\n被称为空白字符。
方法 | 描述 |
---|---|
equals(s1) | 如果该字符串等于字符串s1,返回true |
equalsIgnoreCase() | 如果该字符串等于字符串s1,返回true,不区分大小写 |
compareTo(s1) | 返回一个大于0、等于0、小于0的整数,表明一个字符串是否大于、等于或者小于s1 |
compareToIgnoreCase() | 和compareTo一样,但不区分大小写 |
startsWith(prefix) | 如果字符串以特定前缀开始,返回true |
endsWith(suffix) | 如果字符串以特定后缀结束,返回true |
contains(s1) | 如果s1时该字符串的子字符串,返回true |
注意:== 操作符只能检测string1和string2是否指向同一个对象,不能判定内容是否一致,因此比较两个字符串内容是否一致不能使用 ==,应该使用equals方法。
public class Test5 {
public static void main(String[] args) {
String string1 = new String("Hello World!");
String string2 = new String("Hello World!");
String string3 = string1;
System.out.println(string1 == string3); // string1和string3是同一个对象
System.out.println(string2 == string3); // string2和string3不是同一个对象
System.out.println(string2.equals(string3)); // string2和string3内容相等
}
}
/*output
true
false
true
*/
compareTo方法也可以用来比较两个字符串,s1.compareTo(s2) ,如果s1和s2相等,则返回0;如果按照字典顺序(即Unicode码顺序),s1小于s2,那么方法返回小于0;如果s1字典顺序大于s2,方法返回值大于0.compareTo方法返回值实际是根据s1和s2从左到右数第一个不同字符之间的距离得出的。
警告:如果使用比较运算符(>、>=、<、<=等)比较两个字符串,会发生语法错误,应使用compareTo方法。
方法charAt()可用于提取字符串中特定的字符。也可以通过使用String类中的substring方法冲字符串中获取子字符串。
方法 | 描述 |
---|---|
substring(beginIndex) | 返回该字符串的子字符串,从特定位置beginIndex的字符开始到字符串结尾 |
substring(beginIndex, endIndex) | 返回该字符串的子字符串,从特定位置beginIndex的字符开始到下标为endIndex - 1的字符,注意下标为endIndex的字符不属于该子字符串的一部分 |
方法 | 描述 |
---|---|
indexOf(ch) | 返回字符串中出现的第一个ch的下标。如果没有匹配,返回-1 |
indexOf(ch, fromIndex) | 返回字符串中fromIndex之后出现的第一个ch的下标。如果没有匹配,返回-1 |
indexOf(s) | 返回字符串中出现的第一个字符串s的下标。如果没有匹配,返回-1 |
indexOf(s, fromIndex) | 返回字符串中fromIndex之后出现的第一个字符串s的下标。如果没有匹配,返回-1 |
lastIndexOf(ch) | 返回字符串中出现的最后一个ch的下标。如果没有匹配,返回-1 |
lastIndexOf(ch, fromIndex) | 返回字符串中fromIndex之前出现的最后一个ch的下标。如果没有匹配,返回-1 |
lastIndexOf(s) | 返回字符串中出现的最后一个字符串s的下标。如果没有匹配,返回-1 |
lastIndexOf(s, fromIndex) | 返回字符串中fromIndex之前出现的最后一个字符串s的下标。如果没有匹配,返回-1 |
可以将数值型的字符串转换为数值。
要将字符串转换为int值,使用Integer.parseInt方法;要将一个字符串转换为double值,使用Double.parseDouble方法,其他数值类型同理。
注意:如果字符串不是一个数值型字符串,转换时会导致一个运行时错误。Integer和Double类都包含在java.lang包中,是自动导入的。
同时也可将数值转换为字符串,只需简单使用字符串连接操作符 String strng = number + “”; 即可;或者使用String类的静态方法valueOf。
public class Test6 { public static void main(String[] args) { byte byteValue = Byte.parseByte("1"); short shortValue = Short.parseShort("2"); int intValue = Integer.parseInt("3"); long longValue = Long.parseLong("4"); float floatValue = Float.parseFloat("5.0f"); double doubleValue = Double.parseDouble("6.0d"); String string1 = 7 + ""; String string2 = String.valueOf(8); System.out.println(byteValue); System.out.println(shortValue); System.out.println(intValue); System.out.println(longValue); System.out.println(floatValue); System.out.println(doubleValue); System.out.println(string1); System.out.println(string2); } } /*output 1 2 3 4 5.0 6.0 7 8 */
使用System.ouu.printf方法可以在控制台上显示格式化输出,调用该方法的语法为:
System.out.printf(format, item1,item2, ..., itemn);
其中format指一个由子串和格式化标识符构成的字符串。
简单的格式化标识符是以百分号(%)开头的转换码。
标识符 | 输出 | 举例 |
---|---|---|
%b | 布尔值 | true或false |
%c | 字符 | ‘a’ |
%d | 十进制数 | 200 |
%f | 浮点数 | 45.46000 |
%e | 标准科学计数法形式的数 | 4.566e++01 |
%s | 字符串 | “Java” |
警告:条目(item)与格式标识符在类型上必须严格匹配,对应与格式标识符%f和%e必须时浮点型值。因此int型变量不能匹配%f或%e。使用%来标记格式标识符,如果要在格式字符串中输出直接量%,需使用%%。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。