Java入门教程四(字符串处理)(java字符串处理常用方法)
toyiye 2024-09-16 06:01 3 浏览 0 评论
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
相关推荐
- 为何越来越多的编程语言使用JSON(为什么编程)
-
JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...
- 何时在数据库中使用 JSON(数据库用json格式存储)
-
在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...
- MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)
-
前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...
- JSON对象花样进阶(json格式对象)
-
一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...
- 深入理解 JSON 和 Form-data(json和formdata提交区别)
-
在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...
- JSON 语法(json 语法 priority)
-
JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...
- JSON语法详解(json的语法规则)
-
JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...
- MySQL JSON数据类型操作(mysql的json)
-
概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...
- JSON的数据模式(json数据格式示例)
-
像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...
- 前端学习——JSON格式详解(后端json格式)
-
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...
- 什么是 JSON:详解 JSON 及其优势(什么叫json)
-
现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...
- PostgreSQL JSON 类型:处理结构化数据
-
PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...
- JavaScript:JSON、三种包装类(javascript 包)
-
JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...
- Python数据分析 只要1分钟 教你玩转JSON 全程干货
-
Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...
- 比较一下JSON与XML两种数据格式?(json和xml哪个好)
-
JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- r语言矩阵 (127)
- browsererror (114)
- exportexcel (119)
- cv2.bitwise_not (137)
- dump命令 (128)
- es6concat (126)
- heapify (127)
- java.security.egd (130)
- javax.annotation (117)
- jsstringsplit (117)
- js数字 (115)
- maven编译 (132)
- mysqlleft (128)
- nodejsbuffer (149)
- org.apache.commons.httpclient (126)
- org.jsoup (141)
- org.springframework.web (128)
- robotframework-ride (115)
- setnocounton (141)
- socket.gethostbyname (122)
- sqlmid (121)
- time.strptime (133)
- vscode格式化 (125)
- win32con (129)
- window.localstorage (126)