JavaSE——三个特殊的类:String类(下)
String类(下)
1.字符串查找
从一个完整的字符串之中可以判断指定内容是否存在,查找方法如下:
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1. | public boolean contains(CharSequence s) | 普通 | 判断一个子字符串是否存在 |
2. | public int indexOf(String str) | 普通 | 从头开始查找指定字符串位置,查到了返回开始位置索引,如果查不到返回-1 |
3. | public int indexOf(String str,int fromIndex) | 普通 | 从指定位置开始查找指定字符串位置 |
4. | public int lastIndexOf(String str) | 普通 | 由后向前查找子字符串位置 |
5. | public int lastIndexOf(String str,int fromIndex) | 普通 | 从指定位置向后查找指定字符串出现位置 |
6. | public boolean startsWith(String prefix) | 普通 | 判断是否以指定字符串开头 |
7. | public boolean startsWith(String prefix),int toffset) | 普通 | 从指定位置开始判断是否以指定字符串开头 |
8. | public boolean endsWith(String suffix) | 普通 | 判断是否以指定字符串结尾 |
字符串查找最方便的是contains(),它是JDK1.5之后的新特性,在此前要实现必须借助indexOf()方法实现(常用)
String str = "helloworld";
System.out.println(str.contains("world"));//true
使用indexOf()方法进行位置
String str = "helloworld";
System.out.println(str.indexOf("world"));//true
System.out.println(str.indexOf("lili"));//-1
if(str.indexOf("hello") != -1){System.out.println("可以查到指定字符串");//可以查到指定字符串
}//注:使用indexOf()需要注意的是,如果出现内容重复它只返回查找到的第一个位置
String str = "helloworld";
System.out.println(str.indexOf("l"));//2
System.out.println(str.indexOf("l",5));//8
System.out.println(str.lastIndexOf("l"));//8
在查找字符串时往往会判断开头或结尾
String str = "**@@helloworld!!";
System.out.println(str.startsWith("**"));//true
System.out.println(str.startsWith("@@"));//false
System.out.println(str.startsWith("@@",2));//true
System.out.println(str.endsWith("!!"));//true
System.out.println(str.endsWith("d"));//false
2.字符串替换
使用一个新的字符串替换掉已有的字符串数据,可用的方法如下:
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1. | public String replaceAll(String regex,String replacement) | 普通 | 替换所有指定内容 |
2. | public String replaceFirst(String regex,String replacement) | 普通 | 替换首个指定内容 |
字符串替换处理还与正则表达式有关,这里先不细讲。
//字符串的替换处理
String str = "helloworld";
System.out.println(str.replaceAll("l","-"));//he--owor-d
System.out.println(str.replaceFirst("l","-"));// he-loworld
3.字符串拆分
将一个完整的字符串按照指定的分隔符划分为若干个子字符串,方法如下:
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1. | public String[] split(String regex) | 普通 | 将字符串全部拆分 |
2. | public String[] split(String regex,int limit) | 普通 | 将字符串部分拆分,该数组长度就是limit极限 |
实现字符串拆分处理
String str = "hello world hello bit";
String[] result = str.split(" ");//按照空格拆分
for(String s : result){System.out.println(s);
}
//输出
//hello
//world
//hello
//bit
将字符串的部分拆分
String str = "hello world hello bit";
String[] result = str.split(" ",2);
for(String s : result){System.out.println(s);
}
//输出:
//hello
//world hello bit
有些内容无法拆分就需要使用""转义
//eg:拆分IP地址
String str = "192.168.1.1";
String[] result = str.split("\\.");
for(String s : result){System.out.println(s);
}
//输出
//191
//168
//1
//1
比较常用的是多次拆分
String str = "zoujier:18|zoudapao:81";
String[] result = str.split("\\|");
for(int i = 0; i < result.length; i ++){String[] tmp = result[i].split(":");System.out.println(temp[0] + "=" +temp[1]);
}
//输出
//zoujier=18
//zoudapao=81
4.字符串截取
从一个完整的字符串中取出部分内容
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1. | public String substring(int beginIndex) | 普通 | 从指定索引截取到结尾 |
2. | public String substring(int beginIndex,int endIndex) | 普通 | 截取部分内容 |
观察字符串截取
String str = "helloworld";
System.out.println(str.substring(5));//world
System.out.println(str.substring(3,5));//lo
注:第二种截取方式从beginIndex索引开始截取,beginIndex对应的位置要截取上,到endIndex结束,endIndex对应的位置不截取。
5.字符串其他操作方法
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1. | public String trim() | 普通 | 去掉字符串中的左右空格,保留之间空格 |
2. | public String toUpperCase() | 普通 | 字符串转大写 |
3. | public String toLowerCase() | 普通 | 字符串转小写 |
4. | public native String intern() | 普通 | 字符串入池操作 |
5. | public String concat(String str) | 普通 | 字符串拼接,等同于"+",不入池 |
6. | public int length() | 普通 | 取得字符串长度 |
7. | public boolean isEmpty() | 普通 | 判断是否为空字符串,但不是null,而是长度0 |
trim()方法
String str = " hello world";
System.out.println("[" + str + "]");//[ hello world]
System.out.println("[" + str.trim() + "]");//[hello world]
大小写转换(这两个方法只转换字母)
String str = " hello%$$&%%&*WORLD zoujierchibaba ";
System.out.println(str.toUpperCase());// HELLO%$$&%%&*WORLD ZOUJIERCHIBABA
System.out.println(str.toLowerCase());// hello%$$&%%&*world zoujierchibaba
数组长度使用数组名称.length是属性,而String中的length()是方法。
String str = "hello" ;
System.out.println(str.length());//5
isEmpty()方法
System.out.println("hello".isEmpty());//false
System.out.println("".isEmpty());//true
System.out.println(new String().isEmpty());//true
6.首字母大写操作
String类中没有提供首字母大写操作,需要自己实现
public static void main(String[] args) {//首字母大写System.out.println(fistUpper("zoujier"));//ZoujierSystem.out.println(fistUpper(""));//System.out.println(fistUpper("z"));//Z
}
public static String fistUpper(String str) {//字符串为null或者长度为0时if ("".equals(str)||str==null) {return str ;}//字符串长度大于1时if (str.length()>1) {return str.substring(0, 1).toUpperCase()+str.substring(1) ;//取出第一个字符转大写再拼接第一个字母之后的内容}//字符串只要一个字符时return str.toUpperCase() ;
}
JavaSE——三个特殊的类:String类(下)相关推荐
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- 常用类-String类
一.String类的理解 String类:位于java.lang 包中,被fifinal修饰,没有子类 二.获取字符串的两种常见方式 1.String str1 = "hello" ...
- Java基础---API概述---常用类(Object类/String类)---equals和==
API概述 API:application programming interface,应用程序编程接口 用于规定方法名称的规则集合,定义了方法的修饰符.返回值类型.方法的名称.方法的参数列表.方法的 ...
- C++运算符重载典型习题---复数类 String类 分数类
一.复数类(Complex class) complex.cpp: /***************************************************** copyright ( ...
- 面试题——————不可变类String类
最近看到二哥的一篇文章,对于如何做好一件事情深有感触,自己阅读完也总结了下面这句话分别是:不断学习,不断思考,不断实践.基础知识有了扎实了,下面要做的就是深入.人往高处走嘛! String类相信大家并 ...
- Java常用接口与类——String类、StringBuffer类、StringBuilder类
>String的构造方式 //这两种方式字符串的值是相同的,但在内存中的地址不同: //s1是在常量池中,常量池中有一个hello,同一常量只会放入一次: String s1="hel ...
- Object类 Integer类 Character类 Float类 String类------中的 hashCode() 方法 与 equals(Object obj) 方法的实现的探讨
hashCode方法 与 equals 方法 Object中的: hashCode() equals() Integer中的 hashCode() equals() Character中的 hashC ...
- C++ 经常使用类 string类
===6.3.2使用string对象=== string word="I love China" *链接字符串* string description=adjective + & ...
- java常用类-----String类的源码分析、可变和不可变序列
package cn.zxg.PackgeUse; /** * 测试StringBuilder,StringBuffer可变字符序列 */ public class TestStringBuilder ...
- 【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档
最新文章
- 关于自动驾驶, Mobileye 的 14 个最新观点
- 计算机中列英语,计算机中常用的英文缩写有哪些?
- VB查询数据库之写入数据库——机房收费系统总结(三)
- 消息称苹果正开发基于自研ARM芯片的游戏主机
- 卷积神经网络架构理解
- 冲刺第五天 1.6 SUN
- CISA:警惕俄罗斯 “Sandworm” 黑客组织使用的新型恶意软件框架
- 网页跳转,转,出自:秋实的日积月累
- Cesium教程系列汇总
- optistruct中的DRESP2响应设置
- 首次公开专利并且专利数量最多公司(2022.07.25-2022.7.31)
- JAVA 实现《拳皇误闯冒险岛》游戏
- SX1308电压调节,踩坑
- 计算机加内存还是固态硬盘,电脑慢加内存还是固态硬盘好
- 电脑读卡器,读卡器是什么
- 动物识别——人工智能
- 利用 Docker 配置 Pytorch 镜像流程
- 台积电:3纳米芯片工厂地址首选台湾 美国次之
- 中科大计算机招非全日制,中国科技大学有非全日制研究生招生吗?
- 数据结构PTA 基础实验5-2.2 电话聊天狂人
热门文章
- 做技术需要匠心(转)
- java 判断移动还是pc端_区分PC端 和 移动端
- python类中数据成员_Python 入门 之 类成员
- 用计算机能开通余利宝吗,个人用户现在怎么开通余利宝?
- ipad怎么和mac分屏_华丽变身!神奇App让iPad化身MacBook分屏
- 图层锁定vlisp函数高版本图元自动淡色显示
- 联通iPhone4周日起大降价:最高减超千元
- python实现lol解说抽奖
- 成都产科生产日记(十六)(建档、入院生产、上户、少儿互助金、疫苗、儿保)全...
- Excel单元格如何增加下拉选项(类似于web中的select选项框)