5.1 String类
5.1.1 声明字符串
字符串是常量,它们可以显示任何文字信息,字符串的值在创建之后不能更改。在Java语言中,单引号中的内容表示字符,例如's',而双引号中的内容则表示字符串,例如:
"我是字符串”,"123456789" ," 上下左右东西南北”
Java通过java lang String这个类来创建可以保存字符串的变量,所以字符串变量是一个对象。声明一个字符串变量a,以及声明两个字符串变量a、b。代码如下:
String a;
String a,b;
注意:
在不给字符串变量赋值的情况下,默认值为null,就是空对象,如果此时调用String的方法会发生空指针异常。
5.1.2 创建字符串
1.引用字符串常量
例如,直接将字符串常量赋值给String类型变量。代码如下:
String a = "时间就是金钱,我的朋友。";
String b = "锄禾日当午",c = "小鸡炖蘑菇";
String str1, str2;
str1=. "We are students";
srt2 = "We are students";
当两个字符串对象引用相同的常量时,就具有相同的实体,内存示意图如图所示。
利用构造方法实例化
例如,使用new关键字创建String对象。代码如下:
String a = new String("我爱清汤小肥羊");
String b = new String(a) ;
3.利用字符数组实例化
例如,定义一个字符数组charArray,使用该字符数组创建一个字符串。 代码如下:
char[ ] charArray = { 't', 'i', 'm', 'e' };
String a = new String (charArray) ;
4.提取字符数组中的一部分创建字符串对象
例如,定义一个字符数组charArray从该字符数组索引3的位置开始,提取两个元素,创建一个字符串。代码如下:
"char[ ] charArray = { '时,间,'就', '是,'金','钱,};
String a = new String (charArray, 3,2);
5.1\\String类
package holleJAVA;
public class heeeee {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a="时间就是金钱,我的朋友。";
System.out.println("a="+a);
String b=new String("我爱清汤小肥羊");
String c=new String(b);
System.out.println("b="+b);
System.out.println("c="+c);
char[] charArray= {'t','i','m','e'};
String d=new String(charArray);
System.out.println("d="+d);
char[]charArray2 = {'时','间','就','是','金','钱'};
String e= new String(charArray2,4,2);
System.out.println("e="+e);
}
}
5.2连接字符串
string a= “建团";
string b= “一百周年";
b = a+b; //b =“建团一百周年”
b+ = a; //b =b+a=“建团一百周年”
使用“+”运算符可实现拼接多个字符串的功能,“+”运算符可以连接多个字”在年共产生 String对象。除了“+”运算符,“+=”同样可以实现字符串拼接。
/5.2使用“+”和“+=”拼接字符串。
例五点二
public class heeeee {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a="abc";
String b=("123");
String c=a+b+"!"; //使用“+”拼接字符
String d="拼接字符串";//拼接字符串
d+=c; //使用“+=”拼接字符
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
}
}
提取字符串信息
长度 字符串名.length();
5.3.2 获取指定的字符
str .length() ;
String num ="12345 67890";
int size = num. length() ;
这个结果是将字符串num的长度赋值给int型变量size, 此时变量size的值为11,这表示leng()方法返回的字符串长度包括字符串中的空格。
charAt(String index)方法可将指定索引处的字符返回。
str. charAt (index);
str: 任意字符串对象。
index: char值的索引。
例5.3连接其他数据类型
public class heeeee {
public static void main(String[] args) {
// TODO Auto-generated method stub
int booktime=4;//声明的int型变量booktime 5
float practice = 2.5f; // 声明的float型变量practice
//将字符串与整型、浮点型变量相连,并将结果输出
System.out.println("我每天花费"+booktime+"小时看书;"+practice+"小时上机练习");
}
}
5.3.1 获取字符串长度
length()方法返回采用UTF-16的编码表示字符的数量,也就是char的数量。
注意: 字符串的length( )方法与数组的length虽然都是用来获取长度的,但两者却有些不同。String 的length( )是类的成员方法,是有括号的;数组的length是一个属性,是没有括号的。
5.3.2 获取指定字符串
charAt(String index)方法可将指定索引处的字符返回。
str. charAt (index);
str: 任意字符串对象。
index: char值的索引。
例5.5
String str ="12345abcde";//创建字符串对象
int charIndex=str.indexOf("abc");//获取字符串str中“abc”首次出现的索引,赋值给charIndex
if(charIndex!=-1) {//判断:index的值不等于-1
//如果index不等于-1,则执行此行代码,说明str中存在“abc”字符串
System.out.println("str中存在abc字符串");
}else {//如果index等于-1,则执行此行代码,说明str中没有“abc”字符串
System.out.println("str中没有abc字符串");
}
}
}
2.indexOf(String srt,int fromindex)
a:任意字符串对象
str:要搜索的子字符串
fromindex:开始搜索的索引位置
例五点六
String str = "We are the world";
// 获取字符串中"r"第一次出现的索引位置
int firstIndex = str.indexOf("r");
// 获取字符串中"r"第二次出现的索引位置,从第一次出现的索引位置之后开始查找
int secondIndex = str.indexOf("r", firstIndex + 1);
// 获取字符串中"r"第三次出现的索引位置,从第二次出现的索引位置之后开始查找
int thirdIndex = str.indexOf("r", secondIndex + 1);
// 输出三次获取的索引位置
System.out.println("e第一次出現的索引位置是:" + firstIndex);
System.out.println("e第二次出現的索引位置是:" + secondIndex);
System.out.println("e第三次出現的索引位置是:" + thirdIndex);
}
}
3.pubile int lastindexOf(String srt)
a:任意字符串对象
str:要搜索的字符串
a:任意字符串
srt:要搜索的字符串
例5.7
String str = "Let it go!Let it go!"; // 创建字符串对象
int gIndex = str.lastIndexOf("g"); // 返回”g“最后一次出现的位置
int goIndex = str.lastIndexOf("go"); // 返回”go“最后一次出现的位置
int oIndex = str.lastIndexOf("o"); // 返回”o“最后一次出现的位置
System.out.println("字符串\"Let it go!Let it go\"中:\n");
System.out.println("\"g\"最后一次出现的位置是:" + gIndex);
System.out.println("\"o\"最后一次出现的位置是:" + oIndex);
System.out.println("\"go\"最后一次出现的位置是:" + goIndex);
}
}
5.8
String str = "01a3a56a89";
// 返回字母"a"最后一次出现的索引位置
int lastIndex = str.lastIndexOf("a");
// 返回字母"a"的索引位置otherIndex
// 满足0<=fiveBeforeIndex<=5条件,在满足条件的结果集中,返回最大的数字
int fiveBeforeIndex = str.lastIndexOf("a", 5);
// 返回字母"a"的索引位置otherIndex
// 满足0<=threeBeforeIndex<=3条件,在满足条件的结果集中,返回最大的数字
int threeBeforeIndex = str.lastIndexOf("a", 3);
System.out.println("字符串