字符串
String类型(字符串类型==数据(char[])+操作(char[]中定义的方法))
功能:字符串常量是系统能够显示的任何文字信息,必须包含在双引号(””)之内。
1.字符串对象不变(对象引用名称和内存引用地址变,原本字符串在常量池中永远不变)
例如: String s1='123'; String s2='123'; String s2='12'+'3';(三者是同一个字符串)
2.当常量池中有相同的字面量时,我们会返回相同字面量对象的内存引用地址,如果没有才会创建(new String)
注:去池里面找有没有叫123的字符串 如果有就会把池中123的内存引用地址赋给s (直接定义在池中,new在堆中)
3.字面量和常量的运算是在编译期间进行的,变量运算是在运行期间运算的
注:字面量是String类型的实例.(实例本质就是一个对象 s=”张飞”; s=地址1 指向对象张飞)
语法:String str=[null] String:自定该变量类型为字符串类型
Str:任意有效的标识符,表示字符串变量的名称。
Null:初始化字符串的信息(字符串必须经过初始化才能使用,必须在双引号内)。
创建字符串的方法:
常规方法:String str = “XXXXXXXX”;
利用数组创建字符串:
1.用一个字符数组中的全部创建String
String(char a[]): char a{‘g’’o’’o’’d’}; 等同于 String s = new String(“good”);
String s = new String(a);
2.用一个字符数组中的一部分创建String
String(char a[],int offset,int length) offset表示开始截取的位置(0开始数)
length表示截取的长度(1开始数)
char a{‘s’’t’’u’’d’’e’’n’’t’}; 等同于 String s = new String(“uden”);
String s = new String(a,2,4);
连接字符串:+ (连接符):可实现连接多个字符串的功能,也可连接其他数据使用。
注:Java中一句相连的字符串不能分成两行书写。
eg:(“xxxxxxxxxx
xxxxxxxx”);错误方法
,println(“xxxxxx”+
“xxxxxxx”);正确
获取字符串信息:
1.获取字符串的长度
语法:(); (返回的长度包括字符串中的空格符)
eg:String str = “we are student”;
int size = (); 将str的长度赋值给int型变量 size。
2.字符串查找(索引位置):
IndexOf()方法:返回值为搜索的字符或字符串首次出现的位置。
语法:();(需要搜索的字符串);
eg:string str =”we are family”:
int size = (“a”); 返回值(索引位置)为1
last IndexOf()方法:返回值为搜索的字符或字符串最后一次出现的位置。
语法:();(需要搜索的字符串);
eg:string str =”we are family”:
int size = (“a”); 返回值为(索引位置)5
注:1.字符串的下标是从0开始的
2.如果没有符合条件的字符串,返回值为-1
3.如果搜索的字符串是空格,搜索内容不需要打空格 即int size = ();空着即可
获取指定索引位置的字符:
charAt()方法:
语法:(int index);
eg:String str = “hello word”;
char mychar = str. charAt(5); 查看字符串str索引位置为5的字符,返回值为w
获取指定索引位置的字符串:
Substring方法:
(int beginindex)从指定索引位置开始截取直到结束
语法:String str = “hello word”;
String substr = (3); 从索引位置为3的字符开始截取直到字符串结束
返回值为 lo word
2. Substring(int beginindex,int endindex)从指定索引位置开始截取到指定位置结束
语法:String str = “hello word”;
String substr = (3,7); 从索引位置为3的字符开始截取直到字符串结束
返回值为 lo w (不显示第7位,只显示到第6位)
去除前导和尾部空格(字符中间空格不去除只去除首尾空格)
语法:();
字符串替换:
语法:(char old char,char new char);(‘a’’A’); 将原字符串中a全部换成A
判断字符串的开始或结尾是否与要求一致(boolean输出结果)
(“xx”); 判断字符串是否已xx开头
(“xx”); 判断字符串是否已xx结尾
符合要求输出 true 不符合要求输出false
判断字符串是否相等(比较字符串内容,==比较的是内存引用地址是否相同)
equals()方法:
(String otherstr);(区分大小写)
(String otherstr); (不区分大小写)
str和otherstr是两个字符串的标识符。输出也为true 或 false
按字典顺序比较两个字符串(比较基于字符串中各个字符的Unicode表)
(String otherstr );
字母大小写转换
将所有字符改到小写:();
将所有字符改到大写:();str是要进行转换的字符串
字符串分割
功能:可以使字符串按指定的分割字符或分割字符串对内容进行分割。并将分割结果存放在字符数组中。
无分割次数:
(String sign); sign为分割符 若果定义多个分隔符 用,逗号隔开。
eg:(“a”,”b”); 此语句中分隔符为a和b
给定分割次数:
(string sign,int limit):sign为分隔符 limit为分割次数
eg:(“a”,2); 此语句中分隔符为a 分割两次 分割次数需要减1???
eg: String fenge = 'abc,def,ghi,jkl,mno'; 输出结果:abc
String[] fengehou = (','); def
for(int i =0;(fengehou[i]); jkl
} mno
String[] fengehou1 = (',', 2); 输出结果:abc
for(int i =0;(fengehou1[i]);
}