黑马程序员_java入门_String

------- android培训java培训、期待与您交流! ----------

 

一.代码举例解释

String s1="abc";

abc是一个对象,存在于常量池中

String s2=new String("abc")

s1和s2的区别,s2有两个对象

 

String类复写object的equals方法,判断字符串是否相同

 

 

二String常见功能

1.获取:

1.1字符串中包含的字符数,也就是字符串的长度。

int length():获取长度。

1.2根据位置获取某个位置的字符。

char charAt(int index):

1.3根据字符获取该字符在字符串中的位置。

int indexOf(int ch) :返回的是ch在字符串中第一次出现的位置。

int indexOf(int ch,int fromIndex) :fromIndex指定位置开始,获取ch在字符串中第一次出现的位置。

int indexOf(String str) :返回的是str在字符串中第一次出现的位置。

int indexOf(int ch) :返回的是ch在字符串中第一次出现的位置。

int lastIndexOf(int ch):反向索引一个字符出现的位置。

2.判断:

2.1字符串中是否包含某一个子串

boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回true

特殊之处:int indexOf(String str) :返回的是str在字符串中第一次出现的位置,不存在返回-1

所以也可以用于对指定判断是否包含。例如:if(str.indexOf("aa")!=-1)

而且该方法既可以判断,又可以获取出现的位置。

2.2字符串中是否有内容

boolean isEmpty() :当且仅当 length()0时返回 true

2.3字符串是否是以指定内容开头

boolean startsWith(String prefix) :测试此字符串是否以指定的前缀开始。

2.4字符串是否是以指定内容结尾

boolean endsWith(String suffix) :测试此字符串是否以指定的后缀结束。

2.5判断字符串的内容是否相同(复写了Object类的equals方法)

boolean equals(Object anObject):将此字符串与指定的对象比较。当且仅当该参数不为null并且是与此对象表示相同字符序列的 String 对象时,结果才为true

2.6判断字符串的内容是否相同

boolean equalsIgnoreCase(String anotherString):将此String 与另一个String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这 两个字符串是相等的。

3.转换:

3.1将字符数组转换成字符串

构造函数:

String(char[] value):分配一个新的 String,使其表示字符数组参数中当前包含的字符序 列。 该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

String(char[] value,int offset,int count):分配一个新的 String,它包含取自字符数组参数一个子数组的字符。offset参数是子数组第一个字符的索引,count参数指定子数组的长度。该子 数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

静态方法:

static String copyValueOf(char[] data):返回指定数组中表示该字符序列的String

static String copyValueOf(char[] data,int offset,int count):返回指定数组中表示该字符序列的Stringdata -字符数组。offset -子数组的初始偏移量。count -子数组的长度。

static String valueOf(char c):返回 char参数的字符串表示形式。

3.2将字符串转换成字符数组 *

char[] toCharArray():将此字符串转换为一个新的字符数组。

3.3将字节数组转换成字符串

String(byte[] bytes):通过使用平台的默认字符集解码指定的 byte数组,构造一个新的 String。新String 的长度是字符集的函数,因此可能不等于byte 数组的长度。

String(byte[] bytes,int offset,int length):通过使用平台的默认字符集解码指定的byte 子数组,构造一个新的String。新String 的长度是字符集的函数,因此可能不等于该子数组的长度。

3.4将字符串转换成字节数组

byte[] getBytes():使用平台的默认字符集将此 String编码为 byte序列,并将结果存储到一 个新的 byte 数组中。

byte[] getBytes(Charset charset):使用给定的 charset将此 String编码到 byte序列,并将结 果存储到新的 byte 数组。

3.5将基本数据类型转换为字符串

static String valueOf(char c):返回 char参数的字符串表示形式。

static String valueOf(char[] data,int offset,int count):返回char 数组参数的特定子数组的字符 串表示形式。offset 参数是子数组的第一个字符的索引。count参数指定子数组的长度。 字符数组的内容已被复制,后续修改不会影响新创建的字符串。

static String valueOf(double d):返回 double参数的字符串表示形式。 该表示形式恰好是单参数的 Double.toString 方法返回的结果。

static String valueOf(int i):返回 int参数的字符串表示形式。 该表示形式恰好是单参数的 I nteger.toString方法返回的结果。

例如:

3+"";  //String.valueOf(3);

特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

4.替换:

String replace(char oldChar,char newChar):返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。

String replace(CharSequence target,CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例 如,用"b" 替换字符串"aaa" 中的"aa" 将生成"ba" 而不是"ab"

5.切割:

String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数0 来调用两参数split 方法。因此,所得数组中不包括结尾 空字符串。

String[] split(String regex,int limit):根据匹配给定的正则表达式来拆分此字符串。 此方法返回 的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终 止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。 如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。

6.获取字串:

String substring(int beginIndex,int endIndex):返回一个新字符串,它是此字符串的一个子字符 串。该子字符串从指定的beginIndex 处开始,直到索引endIndex - 1 处的字符。因此,该 子字符串的长度为endIndex-beginIndex

String substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串。该子 字符串从指定索引处的字符开始,直到此字符串末尾。

7.转换,去除空格,比较:

7.1将字符串转换成大写或者小写

String toUpperCase():使用默认语言环境的规则将此 String中的所有字符都转换为大写。此方法等效于 toUpperCase(Locale.getDefault())

String toLowerCase():使用默认语言环境的规则将此 String中的所有字符都转换为小写。这等效于调用 toLowerCase(Locale.getDefault())

7.2将字符串两端的多个空格去除

String trim():返回字符串的副本,忽略前导空白和尾部空白。

7.3对两个字符串进行自然顺序的比较。

int compareTo(String anotherString):按字典顺序比较两个字符串。该比较基于字符串中各个字 符的Unicode 值。按字典顺序将此String 对象表示的字符序列与参数字符串所表示的字符 序列进行比较。如果按字典顺序此String 对象位于参数字符串之前,则比较结果为一个负 整数。如果按字典顺序此String 对象位于参数字符串之后,则比较结果为一个正整数。如 果这两个字符串相等,则结果为0compareTo只在方法 equals(Object)返回 true时才返0

 

 

 

StringBuffer

1.长度可以变化

2.可操作多个数据类型

3.最终都会变成字符串

 

JDK1.5后升级为StringBuilder,功能基本一样

append()可以添加任何类型数据,都自动变成字符串

 

 

关于享元模式的解析

Integer m=128;  

 Integer n=128

 sop("m==n:"+(m==n)); 

 

Integer a=127

Integer b=127

 sop("a==b:"+(a==b));/*结果为true。因为a和b指向了同一个Integer对象。

 当数值在byte范围内时,对于新特性,如果数值已经存在

 则不会再开辟新的空间。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
1. 智慧监狱概述 智慧监狱的建设背景基于监狱信息化的发展历程,从最初的数字化监狱到信息化监狱,最终发展到智慧监狱。智慧监狱强调管理的精细化、监管的一体化、改造的科学化以及办公的无纸化。政策上,自2017年以来,司法部连续发布了多项指导性文件,推动智慧监狱的建设。 2. 内在需求与挑战 智慧监狱的内在需求包括数据应用与共享的不足、安防系统的单一功能、IT架构的复杂性、信息安全建设的薄弱以及IT运维的人工依赖。这些挑战要求监狱系统进行改革,以实现数据的深度利用和业务的智能化。 3. 技术架构与设计 智慧监狱的技术架构包括统一门户、信息安全、综合运维、安防集成平台和大数据平台。设计上,智慧监狱采用云计算、物联网、大数据和人工智能等技术,实现资源的动态分配、业务的快速部署和安全的主动防护。 4. 数据治理与应用 监狱数据应用现状面临数据分散和共享不足的问题。智慧监狱通过构建数据共享交换体系、数据治理工具及服务,以及基于数据仓库的数据分析模型,提升了数据的利用效率和决策支持能力。 5. 安全与运维 智慧监狱的信息安全建设涵盖了大数据应用、安全管理区、业务区等多个层面,确保了数据的安全和系统的稳定运行。同时,综合运维平台的建立,实现了IT系统的统一管理和自动化运维,提高了运维效率和系统的可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值