字符串类的设计与实现_C语言字符串编程题

字符串类的设计与实现_C语言字符串编程题Java程序设计(基础)- 字符串

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述

创建

String s1=”hello”与String s2=new String(“hello”)的区别:

String类在内存中管理一个字符串常量池(常量池的一部分),池中所有相同的字符串常量被合并,只占用一个空间。
String s1=”hello”,先看池中有没有hello,没有就创建一个hello字符串对象。即采用此方法创建0或者1个对象。
String s2=new String(“hello”),这里先在池中创建一个hello对象,同s1,然后new String()时,将hello对象复制到堆heap中,s2指向堆中的hello。采用此种方法时创建1或2个对象(当池中有hello时,创建一个对象)。
在这里插入图片描述

Java 字符串常用操作(String类)

字符串查找

String提供了两种查找字符串的方法,即indexOf与lastIndexOf方法。

1、indexOf(String s)

该方法用于返回参数字符串s在指定字符串中首次出现的索引位置,当调用字符串的indexOf()方法时,会从当前字符串的开始位置搜索s的位置;如果没有检索到字符串s,该方法返回-1

 String str ="We are students";
int size = str.indexOf("a"); // 变量size的值是3

2、lastIndexOf(String str)

该方法用于返回字符串最后一次出现的索引位置。当调用字符串的lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。如果没有检索到字符串str,该方法返回-1.

如果lastIndexOf方法中的参数是空字符串”” ,,则返回的结果与length方法的返回结果相同。
获取指定索引位置的字符

使用charAt()方法可将指定索引处的字符返回。

String str = "hello word";
char mychar =  str.charAt(5);  // mychar的结果是w

获取子字符串

通过String类的substring()方法可对字符串进行截取。这些方法的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。在字符串中空格占用一个索引位置。

substring(int beginIndex)

该方法返回的是从指定的索引位置开始截取知道该字符串结尾的子串。

String str = "Hello word";
 String substr = str.substring(3); //获取字符串,此时substr值为lo word

2、substring(int beginIndex, int endIndex)

beginIndex : 开始截取子字符串的索引位置
endIndex:子字符串在整个字符串中的结束位置

 String str = "Hello word";
 String substr = str.substring(0,3); //substr的值为hel

去除空格

trim()方法返回字符串的副本,忽略前导空格和尾部空格。

字符串替换

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串

oldChar:要替换的字符或字符串

newChar:用于替换原来字符串的内容

如果要替换的字符oldChar在字符串中重复出现多次,replace()方法会将所有oldChar全部替换成newChar。需要注意的是,要替换的字符oldChar的大小写要与原字符串中字符的大小写保持一致。

String str= "address";
 String newstr = str.replace("a", "A");// newstr的值为Address

判断字符串的开始与结尾
startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。

startsWith(String prefix)

该方法用于判断当前字符串对象的前缀是否是参数指定的字符串。

 endsWith(String suffix)

该方法用于判断当前字符串是否以给定的子字符串结束
判断字符串是否相等

equals(String otherstr)

如果两个字符串具有相同的字符和长度,则使用equals()方法比较时,返回true。同时equals()方法比较时区分大小写。

2、equalsIgnoreCase(String otherstr)

equalsIgnoreCase()方法与equals()类型,不过在比较时忽略了大小写。

按字典顺序比较两个字符串

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

 str.compareTo(String otherstr);

字母大小写转换

字符串的toLowerCase()方法可将字符串中的所有字符从大写字母改写为小写字母,而tuUpperCase()方法可将字符串中的小写字母改写为大写字母。

 str.toLowerCase();
 str.toUpperCase();

字符串分割

使用split()方法可以使字符串按指定的分隔字符或字符串对内容进行分割,并将分割后的结果存放在字符数组中。

str.split(String sign);

sign为分割字符串的分割符,也可以使用正则表达式。
没有统一的对字符串进行分割的符号,如果想定义多个分割符,可使用符号“|”。例如,“,|=”表示分割符分别为“,”和“=”。

 str.split(String sign, in limit);

该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。

StringBuffer类

StringBuffer是String的一个对等类,提供了字符串的许多功能,可增长、可改写。
这里只介绍几个StringBuffer类的方法函数:

1、append():将任何数据类型的字符串表示连接到调用的StringBuffer对象的末尾。
当定String对象使用“+”运算符时,经常要调用append方法。

StringBuffer s=new StringBuffer("hello");
    System.out.print(s.append(" world"));

2、inser(int index,String str):将一个字符串插入到另一个字符串中。
3、reverse():颠倒StringBuffer对象中的字符
4、delete(int startIndex,int endIndex),delete(int loc):调用对象中删除一串字符。

注意:除了一个重要的区别之外,与StringBuffer等同,这个区别是他不是同步的,意味着他不是线程安全的,其优势是更快的性能,在使用多线程时必须使用StringBuffer。

Java设计基础及面向对象导向

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106698.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《JavaScript 模式》读书笔记(3)— 字面量和构造函数1

    新的篇章开始了,本章开始,所有的内容都是十分有价值和意义的。本章主要的内容包括对象字面量、构造函数、数组字面量、正则字面量、基本值类型字面量以及JSON等。在大家的工作和实际应用中也有一定的指导意义。

    2022年3月25日
    40
  • Linux load average负载量分析与解决思路

    Linux load average负载量分析与解决思路top命令中loadaverage显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示  系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:  -它没有在等待I/O操作的结果  -它没有主动进入等待状态(也就是没有调用’wait’)  -没有被停止

    2022年7月17日
    13
  • puppeteer爬虫教程_python爬虫入门最好书籍

    puppeteer爬虫教程_python爬虫入门最好书籍译者按: 本文通过简单的例子介绍如何使用Puppeteer来爬取网页数据,特别是用谷歌开发者工具获取元素选择器值得学习。原文: AGuidetoAutomating&am

    2022年8月2日
    4
  • 图片批量重命名编号不带括号的_批量重命名不带括号

    图片批量重命名编号不带括号的_批量重命名不带括号如果你是一名摄影工作者,那么你的电脑里肯定会保存很多的图片,为了更好的整理和保存这些图片,比如一类主题的图片以相同文字命名并且编号,这样就方便以后查找了,解决办法有了,那么怎么给这么多图片命名并编号呢?必须是重命名的放大,这样可以一键修改文件名,但是这样修改后的图片名称虽然有编号,但是编号外面加了一层括号,比较难看,很多小伙伴不想要这个括号,所以今天小编就为大家详细介绍“图片批量重命名编号不要括号”的方法!需要用的工具软件:优速文件批量重命名工具软件下载地址:https://ww…

    2022年9月4日
    8
  • modelsim破解

    modelsim破解http://wenku.baidu.com/link?url=sinFpZ6VwBO7O0U1Zecq0LjtoVuHt-xZLOBRkeeOFOpqlWAj-tX8EF_H2blOFVidMU8n9IPzVockc0usI5t5Hgp1Ou54ZBbpFRv8gGRXZVKmodelsim破解版教程说找不到什么文件,可能就是属性设置为已读下面是加入xilinx的破…

    2022年5月24日
    52
  • ssl证书怎么用_为什么会ssl证书无效

    ssl证书怎么用_为什么会ssl证书无效1.打开网站:https://freessl.cn/按提示操作,验证类型:离线验证;2.会给出一个域名的访问路径和一个文件内容,按照域名解析的主机配置nginx或其它的web服务,返回文件给出的内容;3.确认文件url和内容无误后点验证;4.通过后可以在KeyManager里的证书管理里看到颁发的证书;5.点更多然后选择导出Nginx证书,crt为证书,key为密钥;6.将文件分发到nginx等其它需要证书的服务上去使用;注意:这里最关键的一步就是,你的域…

    2022年10月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号