java学习——27.字符串
字符串是字符的有限序列。
Java中的字符串String是一个类,属于引用数据类型。
今天介绍String中的一些概念和方法。
1、字符串常量
字符串常量是由双引号括起来表示的字符序列。
如:“abc”,”!#@%ji”均为字符串常量。
其中可包含转义字符,如:“hello\n”。
注意:字符串常量只能在同一行内,不能换行。
2、字符串长度
字符串长度指其中包含的字符个数。如:“welcome”长度为7.
空串长度为0。
一个字母、一个汉字均为一个字符,数据类型是 char,占2字节。
字符串中首字符的序号为0.
-1表示某字符不在指定字符串中。
3、字符串变量
声明字符串变量的语法格式同基本数据类型。
String s1;//声明变量,s1为字符串类型
4、 字符串运算
(1) 赋值运算
对字符串变量可进行赋值运算。例如:
s1=”hello”;
String s2=s1;
(2) 连接运算
Java使用字符串连接运算符“+”将两个字符串首尾连接起来。如:
s=”hello ”+”cj”;//结果为”hello cj”
+=定义为字符串变量在原串基础上连接另一个字符串。如:
s+=”,xyz”;//结果为“hello cj,xyz”
5、 字符串是类,不是字符数组
字符串为类,不是字符数组,因此不能用【】来取字符串中的字符,而只能用类String所定义的方法。Java中定义的字符串的方法有:
(1) length()方法,用来取字符串的长度。
需要调用此方法时,要用.运算符。
String s=”abcdefg”;
s.length();//返回一个整数类型的数据,值为字符串的长度:7。
(2)charAt(int i)方法:用来取第i个字符。
注意字符串的首字符的序号为0。
例:String s=”abcdefg”;
char c=s.charAt(1);//c的值为’b’。
注:字符用单引号括起来'’,字符串用的是双引号“”。
(3) equals(Object ojb)方法:比较当前串与obj引用的串是否相等,返回值为boolean类型。
例:String s1=”abcdefg”,s2=”abcc”;
s1.equals(s2);//值为false.
(4) substring(int begin)方法:用来取子串,返回从begin开始到串尾的子串。
substring(int begin,int end)方法:用来取子串,返回从begin开始到end结尾的子串。
(5) format(String format,Object…args)方法:格式化字符串。
例:以上方法简单举例。
public class stringlearn {
public static void main(String args[]){
System.out.println("Welcome");//字符串常量
String s1;//字符串变量,声明
s1="abc";//赋值
System.out.println("s1="+s1);
String s2="hello";//声明时赋值
System.out.println("s2="+s2);
s2+=s1;//复合赋值运算
System.out.println("s2+=s1后,s2="+s2);
System.out.println(s2+""+s1);
int s1length=s1.length();//与数组不同,没有Length属性,只能调用方法
System.out.println("Thelength of s1 is "+s1length);
int s2length=s2.length();
System.out.println("Thelength of s2 is "+s2length);
boolean isequal=s1.equals(s2);
System.out.println("s1是否等于s2: "+isequal);
System.out.println("s1的第2个字符是:"+s1.charAt(1));//序号从0开始
System.out.println("s2从第2个字会后是:"+s2.substring(1));
System.out.println(String.format("s2=%s,s1=%s",s2,s1));
int a[]=new int[10];
for(int i=0;i<=9;i++)
a[i]=i;
for(int i=0;i<=9;i++)
System.out.print(String.format("%4d",a[i]));
System.out.println();
float b[]=new float[10];
for(int i=0;i<=9;i++)
b[i]=i;
for(int i=0;i<=9;i++)
System.out.print(String.format("%5.2f",b[i]));
System.out.println();
System.out.printf("100的十六进制是:%x ",100);
}
}
其运行结果如下: