字符串类的设计与实现_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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • latex字母斜体加粗_latex加粗字体

    latex字母斜体加粗_latex加粗字体显示直立文本: \textup{文本}意大利斜体: \textit{文本}slanted斜体: \textsl{文本}显示小体大写文本:\textsc{文本}中等权重:

    2022年8月3日
  • Elasticsearch索引迁移的四种方式

    Elasticsearch索引迁移的四种方式本文主要讲解Elasticsearch下实现索引迁移的几种方式。0、引言将ES中的索引拷贝到其他ES中,或者将ES整体迁移,研究发现有两个开源的工具:elaticserch-dump和Elasticsearch-Exporter。除此之外,logstash在索引同步、迁移方面的作用也很大。两工具及logstash实现迁移的介绍、安装、使用、验证效果等展示如下:1、el…

    2022年5月29日
  • 漫步者lollipods如何调节音量_漫步者LolliPods怎么配对双耳-使用教程[通俗易懂]

    不少用户在入手漫步者LolliPods后不知道怎么配对双耳,小编今天为大家带来了漫步者LolliPods的使用教程,感兴趣的朋友不要错过了哦。漫步者LolliPods配对双耳教程方法一一、先随便连接一只耳机,连接以后点击断开连接,把左耳放回充电仓,二、拿出右耳,把充电仓盖上让右耳断开左耳的链接,然后手机搜索能搜到右耳连接,三、这样两个都可以匹配上了,并且使用时随便一只连接都是主耳机方法二第一:拿出…

    2022年4月9日
  • Vue Router Tab「建议收藏」

    Vue Router Tab「建议收藏」介绍VueRouterTab是基于Vue.js和VueRouter的路由页签组件,用来实现多页签页面的管理。官网演示包含的功能✅响应路由变化来打开或切换页签✅页签过多鼠标滚轮滚动✅页签拖拽排序✅支持页签打开、切换、关闭、刷新、重置等操作✅Iframe页签嵌入外部网站✅组件个性化设置:过渡效果、自定义插槽、页签右键菜单✅多语言支持✅缓存控制:页签规则、页签是否缓存、最大缓存数、是否复用组件等✅动态页签信息:标题、图标、提示✅初始页签数据,进入页

    2022年7月27日
  • 通过pycharm使用git和github的步骤(图文详解)[通俗易懂]

    通过pycharm使用git和github的步骤(图文详解)[通俗易懂]目录:导读一、在Pycharm工具中配置集成Git和GitHub。二、推送项目到版本库三、从版本库克隆项目四、通过文件名颜色识别文件状态。五、如何向Git和GitHub仓库中添加文件?六、如何修改Git仓库中的文件?七、如何删除Git仓库中的文件?八、创建分支九、总结一、在Pycharm工具中配置集成Git和GitHub。1.集成Git。打开Pycharm,点击File–>Settins–>VersionControl–>Git.

    2022年8月26日
  • Android入门第八篇之GridView(九宫图)

    Android入门第八篇之GridView(九宫图)

    2021年11月29日

发表回复

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

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