Java的string学习笔记 与char数组和bufferstring的比较
---恢复内容开始---
一直用的C
导致这种类望而生畏
现在终于鼓起勇气学习一下
首先学习string类型
1 String s1 = "AbCdEf"; 2 String s2 = "abcdef";
char charAt(int index)返回指定下标的值
int compareTo(String anotherString)字典序比较两个字符串
int compareToIgnoreCase(String str)忽略大小写比较两个字符串(下面代码结果是0)
1 String s1 = "AbCdEf"; 2 String s2 = "abcdef"; 3 System.out.println(s1.compareToIgnoreCase(s2));
boolean endsWith(String suffix)某个字符串是否以另个一个字符串结尾(下面代码结果是true)
boolean startsWith(String prefix)(是否以某个字符串作为开头)
1 String s1 = "AbCdEf"; 2 System.out.println(s1.endsWith("CdEf"));
boolean equals(Object anObject) (判断是否相等)
boolean equalsIgnoreCase(String anotherString) (忽略大小写判断是否相等)下面代码结果是true
1 String s1 = "AbCdEf"; 2 String s2 = "abcdef"; 3 System.out.println(s1.equalsIgnoreCase(s2));
int indexOf(String str) (固定字符串的位置)下面代码结果是3
1 String s1 = "AbCdEf"; 2 System.out.println(s1.indexOf("dEf"));
int lastIndexOf(String str)(从右边开始找指定字符串)
int length()(长度不用多说了)
String substring(int beginIndex) String substring(int beginIndex, int endIndex) (以下标截取新的字符串,包含第一个下表不包含第二个下标·)
1 String s1 = "AbCdEf"; 2 System.out.println(s1.substring(2,5));
char[] toCharArray()(转换为char类型数组)
s1.toCharArray()
String toLowerCase()(把所有的字母转换成小写字母)
String toString() 没啥用。。。但是bufferstring有这个操作用于转换
String toUpperCase() 全都换成大写字母
String trim()去掉前面的空格
——————————————————————————分割线——————————————————————————————————————————————
所以就是说string类的操作大多数都是一些比较
其实string类指向的是常量,要改变的话要使用bufferstring
1、StringBuffer对象的初始化
StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。
例如:
StringBuffer s = new StringBuffer();
这样初始化出的StringBuffer对象是一个空的对象,就是我犯的错误。
如果需要创建带有内容的StringBuffer对象,则可以使用:
StringBuffer s = new StringBuffer(“abc”);
这样初始化出的StringBuffer对象的内容就是字符串”abc”。
需要注意的是,StringBuffer和String属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:
1 StringBuffer s = “abc”; //赋值类型不匹配 2 StringBuffer s = (StringBuffer)”abc”; //不存在继承关系,无法进行强转 3 StringBuffer对象和String对象之间的互转的代码如下: 4 String s = “abc”; 5 StringBuffer sb1 = new StringBuffer(“123”); 6 StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer 7 String s1 = sb1.toString(); //StringBuffer转换为String
2、StringBuffer的常用方法 拼接删除修改反转
StringBuffer类中的方法主要偏重于对于字符串的变化,例如追加、插入和删除等,这个也是StringBuffer和String类的主要区别。
a、append方法
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.append(true);
则对象sb的值将变成”abctrue”。
b、deleteCharAt方法
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“Test”);
sb. deleteCharAt(1);
该代码的作用删除字符串对象sb中索引值为1的字符,也就是删除第二个字符,剩余的内容组成一个新的字符串。所以对象sb的值变为”Tst”。
还存在一个功能类似的delete方法:
public StringBuffer delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符,包含start,不包含end索引值的区间。例如:
StringBuffer sb = new StringBuffer(“TestString”);
sb. delete (1,4);
该代码的作用是删除索引值1(包括)到索引值4(不包括)之间的所有字符,剩余的字符形成新的字符串。则对象sb的值是”TString”。
c、insert方法
public StringBuffer insert(int offset, boolean b)
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“TestString”);
sb.insert(4,false);
该示例代码的作用是在对象sb的索引值4的位置插入false值,形成新的字符串,则执行以后对象sb的值是”TestfalseString”。
d、reverse方法
public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.reverse();
经过反转以后,对象sb中的内容将变为”cba”。
e、setCharAt方法
public void setCharAt(int index, char ch)
该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.setCharAt(1,’D’);
则对象sb的值将变成”aDc”。
f、trimToSize方法
public void trimToSize()
该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费。
总之,在实际使用时,String和StringBuffer各有优势和不足,可以根据具体的使用环境,选择对应的类型进行使用。
StringBuffer s = “abc”; //赋值类型不匹配
StringBuffer s = (StringBuffer)”abc”; //不存在继承关系,无法进行强转
StringBuffer对象和String对象之间的互转的代码如下:
String s = “abc”;
StringBuffer sb1 = new StringBuffer(“123”);
StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer
String s1 = sb1.toString(); //StringBuffer转换为String
转载于:https://www.cnblogs.com/xuyanqd/p/8595106.html
Java的string学习笔记 与char数组和bufferstring的比较相关推荐
- Java快速入门学习笔记8 | Java语言中的数组
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- 《疯狂Java讲义》学习笔记 第六章 面向对象(下)
<疯狂Java讲义>学习笔记 第六章 面向对象(下) 6.1包装类 基本数据类型 包装类 byte Byte short Short int Integer long Long char ...
- Java基础篇 学习笔记
List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...
- Java快速入门学习笔记9 | Java语言中的方法
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记2 | Java语言中的基本类型
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java 8 实战学习笔记
Java 8 实战学习笔记 @(JAVASE)[java8, 实战, lambda] 文章目录 Java 8 实战学习笔记 参考内容 Lambda表达式 Lambda环绕执行模式(抽离步骤) 原始代码 ...
- Java编程思想学习笔记-第11章
<?xml version="1.0" encoding="utf-8"?> Java编程思想学习笔记-第11章 Java编程思想学习笔记-第11章 ...
- JAVA 第二周学习笔记
JAVA第二周学习笔记 一.变量 1.变量的本质 2.变量的三大要素 a.变量名: b.变量值: c.变量类型: 3.变量的定义和使用 4.课后小练习: 5.变量的定义和使用 二.运算符 1.赋值运算 ...
- 01.Java 编程入门学习笔记20210307
Java 编程入门学习笔记-day01 第0章:编程入门 1.计算机的概述 计算机 = 硬件 + 软件 1.1硬件:冯诺依曼体系 CPU: CPU的衡量标准:速度的计量单位是赫兹(Hz),1Hz相当于 ...
最新文章
- WDS部署操作系统之二 制作并捕获模板计算机映像
- 雨课堂c语言考试题库2020,雨课堂2020题目答案,雨课堂2020作业答案
- Spring集成web环境(手动实现)
- switchcase的用法
- Python打包EXE神器 pyinstaller
- 笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
- java测试接口_Java测试普通Java接口记录-TestHrmInterface
- Matlab 最速下降法 实列及代码实现
- 物资仓库管理软件分析
- 中值定理9-极值点判断
- Python爬虫入门教程【7】: 蜂鸟网图片爬取之二
- linux服务器插上u盘不显示,U盘在Linux下显示不正常的解决方法
- 任务管理器不显示磁盘
- WordPress模板教程
- Python入门题031:excel表格筛选重复数据
- 【华人学者风采】徐泽水 四川大学
- 【转】VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(上)
- 5个人站队,每个人不在原位置有多少种站法
- 计算机论文致谢词范文500字,论文致谢词范文
- JavaWeb(kuang)
热门文章
- Interesting Finds: 2008.04.24
- 【MyBatis笔记】05-传统开发模式DAO
- python进阶10并发之六并行化改造
- IT报表开发者必看:别加班了,快用这个神器提高报表开发效率
- 「报表开发者必看」避开这6个误区,报表才能好看又实用
- 0x00D2DCAC 处(位于 Company.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000024 时发生访问冲突。
- ajax中设置请求头和自定义请求头
- CPU启动计算机,如何加快双核CPU计算机win7启动速度
- ceq c matlab,求一个函数MATLAB的编程,求大神指教。
- Hakase and Nano 博弈