不敢说,字符串是java程序中用的最多的对象,但是肯定的一点是,字符串是用的很多的那种,如果字符串用的不好,足以影响你代码执行的效率,来说说字符串
写过c代码的人,都知道字符串在本质上是字符(char)类型的数组,但是在java中字符串不仅仅是一个字符数组,还是一个String类的实例对象,常见的字符串的定义有两种,一种是直接指向字符串的
比如:String str = “hello world”
一种是采用最常见的对象建立的方式来定义,比如Strig str = new String(“hello world”);
在java中可以通过“+”来进行字符串串联,比如String Str=“hello”+“world”;“+”本来是一个加法运算符,但是在这里它被重写了,作为连接符;
刚才说过,字符串是以String的一个实例存在的,所以每个字符串对象本身就拥有几个可以操作的方法
length()获得字符串的字符长度,注意在这里是方法名称,而不是属性length
equals()比较两个对象的内容
toLowerCase()字符串改为小写
toUpperCase()字符串改为大写
来看代码
public class StrDemo1{
public static void main(String[] args){
String str = "hello world";
System.out.println("转换为小写"+str.toLowerCase());
System.out.println("转换为大写"+str.toUpperCase());
System.out.println("字符串的长度"+str.length());
}
}
运行结果如图1-2所示
图1-2 StrDemo1编译运行的结果
代码很简单,没什么要说的,看看就好
当然字符串和基本数据类型之间是可以相互转换的,这个比较多而且很常见的,用的时候百度就好,没啥技术含量
由于字符串在本质上是一个字符数组,所以,它本身也有字符数组的特性
取得字符串上的字符的的方法
char charAt(int index);取得指定索引出的字符;
int indexOf(char c);返回c第一个出现的位置的索引值
int indexOf(String str);返回第一个出现字符串str的索引
int lastIndexOf(char c);返回最后一个c出现的位置索引
String substring(int beginIndex);返回从指定索引到结束的字符串
String subString(int beginIndex,int endIndex);返回从指定开始索引到结束索引的字符串
char[] toCharArray();将字符串转换为字符数组
boolean endWith(String str);判断字符串是否是已指定的字符串结尾的
来看一段代码
public class StrDemo2{
public static void main(String[] args){
String str = "hello";
System.out.println("逐一取得每个索引上是字符");
for(int i=0;i<str.length();i++){
System.out.println(str.charAt(i));
}
System.out.println("最后一个l的位置"+str.lastIndexOf("l"));
System.out.println("第一个l的位置"+str.indexOf("l"));
System.out.println("将字符串转换为字符数组");
char[] arr = str.toCharArray();
for(int i=0;i<arr.length;i++){//从这里可以看出length的不同了
System.out.println(arr[i]);
}
}
}
代码运行结果如图1-3所示
图1-3 StrDemo2编译运行的结果
代码很简单,不做什么解释了,很明了的
不可变字符串
在java中有一个很重要的规则,就是一旦一个字符串被配置,它的内容就是固定不可改变的,其它的东西,改天继续唠……