字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。在程序开
发中字符串无处不在,如用户登陆时输入的用户名、密码等使用的就是字符串。其实,在前面的章节中我们就已经使
用了字符串,例如我们在控制台中输出的 "Hello World"等。
在Java中,字符串被作为 String 类型的对象处理。 String 类位于 java.lang 包中。默认情况下,该包被自动导入
所有的程序。
java.lang.String类代表不可变的字符序列,"xxxx"为该类的一个对象。
String类常见的构造方法有:
1)String(String original):创建一个String对象为original的拷贝;
2)String(char[] value):用一个字符数组创建一个String对象;
3)String(char[] value,int offset,int count):用一个字符数组从offset项开始的count个字符序列创建一个String对
象;
创建字符串的简单的方式如下:
<span style="font-size:18px;">String greeting = "Hello world!";</span>
在代码中遇到字符串常量时,这里的值是"Hello world!",编译器会使用该值创建一个String对象。创建一个字符
串对象greeting="Hello World!";时,Java运行时(运行中JVM)会拿着这个"imooc"Hello World!;在String池中找是否存
在内容相同的字符串对象,如果不存在,则在池中创建一个字符串"Hello World!";,否则,不在池中添加。
和其它对象一样,可以使用关键字和构造方法来创建String对象。String类有11种构造方法,这些方法提供不同
的参数来初始化字符串,使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。这里就是直接
创建字符串对象。比如提供一个字符数组参数:
<span style="font-size:18px;">public class Test{ public static void main(String[] args){ //创建字符数组 char[] helloArray = {'h', 'e', 'l', 'l', 'o', '.'}; //使用构造方法创建字符串 String helloString = new String(helloArray); System.out.println(helloString); } }</span>
以上实例编译运行结果如下:
注意:String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了。 String 对象创建后则不能
被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。如果需要对字符串做很多修改,
那么应该选择使用StringBuffer类或StringBuilder 类。
用于获取有关对象的信息的方法称为访问器方法。String类的一个访问器方法是length()方法,它返回字符串对象
包含的字符数。
下面的代码执行后,len变量等于17:
<span style="font-size:18px;">public class Test{ public static void main(String[] args){ String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); System.out.println( "String Length is : " + len ); } }</span>
以上实例编译运行结果如下:
String类提供了连接两个字符串的方法:
(1)string1.concat(string2);
返回string2连接string1的新字符串。也可以对字符串常量使用concat()方法,如:
<span style="font-size:18px;">"My name is ".concat("Zara");</span>
结果如下:
<span style="font-size:18px;">My name is Zara</span>
(2)更常用的是使用'+'操作符来连接字符串,如:
<span style="font-size:18px;">"Hello," + " world" + "!"</span>
结果如下:
<span style="font-size:18px;">"Hello, world!"</span>
下面是一个例子:
<span style="font-size:18px;">public class Test{ public static void main(String[] args){ String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod"); } }</span>以上实例编译运行结果如下:
<span style="font-size:18px;">Dot saw I was Tod</span>
我们知道输出格式化数字可以使用printf()和format()方法。String类使用静态方法format()返回一个String对象而不
是PrintStream对象。String类的静态方法format()能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。
如下所示:
<span style="font-size:18px;">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);</span>
你也可以这样写:
<span style="font-size:18px;">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);</span>
下面是String类支持的方法,更多详细,参看Java API文档: