字符串
在 Java 编程中广泛使用的字符串是一系列字符,在 Java 编程语言中,字符串是对象。
Java 平台提供 String 类来创建和操作字符串。
创建字符串
创建字符串的最直接方法是编写:
String greeting = “Hello world!”;
在这种情况下,”Hello world!” 是一个字符串文字 — 代码中的一系列字符,用双引号括起来,每当它在代码中遇到字符串文字时,编译器就会创建一个带有其值的 String 对象 — 在本例中为 Hello world!。
与任何其他对象一样,你可以使用 new 关键字和构造函数创建 String 对象,String 类有 13 个构造函数,允许你使用不同的源提供字符串的初始值,例如字符数组:
char[] helloArray = { ‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘.’};
String helloString = new String(helloArray);
System.out.println(helloString);
此代码段的最后一行显示 hello.。
注意:String 类是不可变的,因此一旦创建,就无法更改 String 对象,String 类有许多方法,其中一些将在下面讨论,似乎可以修改字符串,由于字符串是不可变的,因此这些方法真正做的是创建并返回包含操作结果的新字符串。
字符串长度
用于获取对象信息的方法称为访问器方法,可以与字符串一起使用的一种访问器方法是 length() 方法,它返回字符串对象中包含的字符数,在执行以下两行代码后,len 等于 17:
String palindrome = “Dot saw I was Tod”;
int len = palindrome.length();
palindrome 是一个对称的单词或句子 — 它向前和向后拼写相同,忽略大小写和标点符号,这是一个简短而低效的程序来反转 palindrome 字符串,它调用 String 方法 charAt(i),它返回字符串中的第 i 个字符,从 0 开始计数。
public class StringDemo {
public static void main(String[] args) {
String palindrome = “Dot saw I was Tod”;
int len = palindrome.length();
char[] tempCharArray = new char[len];
char[] charArray = new char[len];
// put original string in an
// array of chars
for (int i = 0; i < len; i++) {
tempCharArray[i] =
palindrome.charAt(i);
}
// reverse array of chars
for (int j = 0; j < len; j++) {
charArray[j] =
tempCharArray[len – 1 – j];
}
String reversePalindrome =
new String(charArray);
System.out.println(reversePalindrome);
}
}
运行该程序会产生以下输出:
doT saw I was toD
要完成字符串反转,程序必须将字符串转换为字符数组(第一个 for 循环),将数组转换为第二个数组(第二个 for 循环),然后再转换回字符串,String 类包含一个方法 getChars(),用于将字符串或字符串的一部分转换为字符数组,因此我们可以在上面的程序中替换第一个 for 循环:
palindrome.getChars(0, len, tempCharArray, 0);
连接字符串
String 类包括用于连接两个字符串的方法:
string1.concat(string2);
这将返回一个新字符串,该字符串为 string1,并在末尾添加了 string2。
你还可以将 concat() 方法与字符串文字一起使用,如下所示:
“My name is “.concat(“Rumplestiltskin”);
字符串通常使用 + 运算符连接,如:
“Hello,” + ” world” + “!”
结果是:
“Hello, world!”
+ 运算符广泛用于打印语句,例如:
String string1 = “saw I was “;
System.out.println(“Dot ” + string1 + “Tod”);
这将打印:
Dot saw I was Tod
这种连接可以是任何对象的混合,对于不是 String 的每个对象,调用其 toString() 方法将其转换为 String。
注意:Java 编程语言不允许文字字符串跨越源文件中的行,因此必须在多行字符串中的每行末尾使用 + 连接运算符,例如:
String quote =
“Now is the time for all good ” +
“men to come to the aid of their country.”;
使用 + 连接运算符在行之间断开字符串在 print 语句中非常常见。
创建格式字符串
你已经看到使用 printf() 和 format() 方法来打印带有格式化数字的输出,String 类有一个等效的类方法 format(),它返回一个 String 对象而不是一个 PrintStream 对象。
使用 String 的 static format() 方法可以创建一个可以重用的格式化字符串,而不是一次性打印语句,例如替换:
System.out.printf(“The value of the float ” +
“variable is %f, while ” +
“the value of the ” +
“integer variable is %d, ” +
“and the string is %s”,
floatVar, intVar, stringVar);
你可以这样写:
String fs;
fs = String.format(“The value of the float ” +
“variable is %f, while ” +
“the value of the ” +
“integer variable is %d, ” +
” and the string is %s”,
floatVar, intVar, stringVar);
System.out.println(fs);
上一篇:字符