网站首页 > java教程 正文
字符串
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:system.out.println(“xxxxxxxxxx
xxxxxxxx”);错误方法
system.out,println(“xxxxxx”+
“xxxxxxx”);正确
获取字符串信息:
1.获取字符串的长度
语法:str.length(); (返回的长度包括字符串中的空格符)
eg:String str = “we are student”;
int size = str.length(); 将str的长度赋值给int型变量 size。
2.字符串查找(索引位置):
IndexOf()方法:返回值为搜索的字符或字符串首次出现的位置。
语法:Str.indexOf();(需要搜索的字符串);
eg:string str =”we are family”:
int size = Str.indexOf(“a”); 返回值(索引位置)为1
last IndexOf()方法:返回值为搜索的字符或字符串最后一次出现的位置。
语法:Str.lastindexOf();(需要搜索的字符串);
eg:string str =”we are family”:
int size = Str.indexOf(“a”); 返回值为(索引位置)5
注:1.字符串的下标是从0开始的
2.如果没有符合条件的字符串,返回值为-1
3.如果搜索的字符串是空格,搜索内容不需要打空格 即int size = Str.indexOf();空着即可
获取指定索引位置的字符:
charAt()方法:
语法:str.charAt(int index);
eg:String str = “hello word”;
char mychar = str. charAt(5); 查看字符串str索引位置为5的字符,返回值为w
获取指定索引位置的字符串:
Substring方法:
1.Substring(int beginindex)从指定索引位置开始截取直到结束
语法:String str = “hello word”;
String substr = str.substring(3); 从索引位置为3的字符开始截取直到字符串结束
返回值为 lo word
2. Substring(int beginindex,int endindex)从指定索引位置开始截取到指定位置结束
语法:String str = “hello word”;
String substr = str.substring(3,7); 从索引位置为3的字符开始截取直到字符串结束
返回值为 lo w (不显示第7位,只显示到第6位)
去除前导和尾部空格(字符中间空格不去除只去除首尾空格)
语法:str.trim();
字符串替换:
语法:str.replace(char old char,char new char); str.replace(‘a’’A’); 将原字符串中a全部换成A
判断字符串的开始或结尾是否与要求一致(boolean输出结果)
Str.startsWith(“xx”); 判断字符串是否已xx开头
Str.endsWith(“xx”); 判断字符串是否已xx结尾
符合要求输出 true 不符合要求输出false
判断字符串是否相等(比较字符串内容,==比较的是内存引用地址是否相同)
equals()方法:
str.equals(String otherstr);(区分大小写)
str.equalslgnoreCase(String otherstr); (不区分大小写)
str和otherstr是两个字符串的标识符。输出也为true 或 false
按字典顺序比较两个字符串(比较基于字符串中各个字符的Unicode表)
str.compareTo (String otherstr );
字母大小写转换
将所有字符改到小写:str.tolowerCase();
将所有字符改到大写:str.toupperCase(); str是要进行转换的字符串
字符串分割
功能:可以使字符串按指定的分割字符或分割字符串对内容进行分割。并将分割结果存放在字符数组中。
无分割次数:
str.split(String sign); sign为分割符 若果定义多个分隔符 用,逗号隔开。
eg:str.split(“a”,”b”); 此语句中分隔符为a和b
给定分割次数:
str.split(string sign,int limit): sign为分隔符 limit为分割次数
eg:str.split(“a”,2); 此语句中分隔符为a 分割两次 分割次数需要减1???
eg: String fenge = "abc,def,ghi,jkl,mno"; 输出结果:abc
String[] fengehou = fenge.split(","); def
for(int i =0;i<fengehou.length;i++){ ghi
System.out.println(fengehou[i]); jkl
} mno
String[] fengehou1 = fenge.split(",", 2); 输出结果:abc
for(int i =0;i<fengehou1.length;i++){ def,ghi,jkl,mno
System.out.println(fengehou1[i]);
}
猜你喜欢
- 2024-10-09 Java字符串相关面试题(java 字符串面试题)
- 2024-10-09 docx文档的模板替换及在线预览(word模板替换的方法)
- 2024-10-09 文本批量替换工具 正则式替换功能解决一切文本应用操作
- 2024-10-09 JAVA字符串多种相关操作总结(java中的字符串的实例方式有几种)
- 2024-10-09 String构造方法和字符集编码转换(string类构造方法)
- 2024-10-09 String、StringBuffer、StringBuilder的区别 #java
- 2024-10-09 Java中的IO流之字符流(java io 字符流)
- 2024-10-09 1807. 替换字符串中的括号内容(1807. 替换字符串中的括号内容是什么)
- 2024-10-09 Java中String、StringBuffer、StringBuilder的区别以及使用总结
- 2024-10-09 java程序员必备的基础知识之字符串
你 发表评论:
欢迎- 最近发表
-
- 多种负载均衡算法及其Java代码实现
- 输入www.baidu.com背后经历了啥?说清楚这个,已经超过90%的人了
- 优化MySQL:为什么你应该用 UNSIGNED INT 存储IP地址
- 实模式下CPU如何获取数据及指令(实模式寻址方式)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- 盘点爬虫语言为何选择Python而不是Java
- 搭载Dubbo+Zookeeper踩了这么多坑,我终于决定写下这篇
- 网络协议之TCP/IP协议(面试必考内容) - javaEE初阶 - 细节狂魔
- 深夜报警!10亿次请求暴击,如何用Redis找出最热IP?
- VPN技术(IPsec/L2TP/SSLVPN/PPTP)学习笔记
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)