Sring StringBuffer StringBuilder封装类
Sring StringBuffer StringBuilder封装类
一、String类常见方法的使用
字符串数据都是一个对象
字符串数据一旦初始化就不可以被改变
字符串对象都存储于常量池中,字符串常量池
==比较的是地址值,而new是重新开辟
1、判断
- equals(Object obj) :字符串类重写了Object的方法,用于比较字符串的值是否相等
- equalsIfnoreCase(String anotherString) 用于标胶字符串的值是否相等不区分大小写
- contains(String s) :判断一个字符串中是否包含另一个字符串
- startd With(String prefix) :测试次字符串是否是以指定的前缀开始
- endsWith(String suffix):测试此字符串是否以指定的后缀结束
- idEmpty()判断字符串是否为空
2、获取
int length() :获取字符串长度
char charAt(int index):获取指定位置的字符
获取指定的字符串或者字符串在给定的字符串中第一次出现的索引
- int indexOf(int ch) 获取指定字符串在字符串中第一次出现的索引
- int indexOf(int ch ,int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
- int indexOf(String str) 获取指定字符串在字符串中第一次出现的索引
- int indexOf(String str ,int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
获取指定的字符或者字符串在给定的字符串中最后一次出现的索引
int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,
从指定的索引处开始进行反向搜索。
int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处
的索引,从指定的索引开始反向搜索。
获取子串
String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个
子字符串。 <含头不含尾>
3、转换
字符串和字节数组的转换
从 String 到 byte[]------>byte[] getBytes()
从 byte[]到 String-------->new String(byte[] by)构造方法 .
字符串和字符数组的转换
从 String 到 char[]
char[] toCharArray()
length(),charAt(int index)结合
从 char[]到 String
new String(char[] ch)
static copyValueOf(char[] data)
static String valueOf(char[] data, int offset, int count)
static String valueOf(xxx y) xxx 基本数据类型
举例:int x = 4;
基本数据类型转换成字符串:String.valueOf(x);
static String valueOf(Object obj) 把对象转成字符串
举例:
Demo d = new Demo();
sop(d);
sop(d.toString());
sop(String.valueOf(d));
String toUpperCase() 所有字符都转换为大写
String toLowerCase() 所有字符都转换为小写
字符串的连接
字符串连接符:+
String concat(String str) 将指定字符串连接到此字符串的结尾。
String s = "aaa" s.concat("bbb").concat("ccc").concat("ddd");
4、替换
String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替
换此字符串中出现的所有 oldChar 得到的。
String replace(String oldString, String newString) 返 回 一 个 新 的 字 符 串 , 它 是 通 过 用 newString 替换此字符串中出现的所有 oldString 得到的。
5、切割
- String[] split(String regex)根据给定的字符串把字符串分割.
6、去除字符串空格
- trim() 去除字符串的前后空格
三、StringBuffer&StringBuilder
字符串String是定长的,StringBuffer是变长的
元素的追加
- insert(索引,元素)
- reverse();反转
- capacity();容量 它可以存储的元素个数
- length();长度 它实际存储的元素个数
- String substring(索引,); 把 StringBuffer 中的一部分复制,然后把复制的这部分内容赋给了一个 String.
StringBuffer,StringBuilder区别
- StringBuffer 线程安全的,效率低(同步)
- StringBuilder 线程不安全的,效率不高(不同步的)
- 基本数据类型用比较运算符进行比较,引用数据类型用compare To进行比较
Sring StringBuffer StringBuilder封装类的更多相关文章
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String,StringBuffer,StringBuilder的区别
public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...
- [源码]String StringBuffer StringBudlider(2)StringBuffer StringBuilder源码分析
纵骑横飞 章仕烜 昨天比较忙 今天把StringBuffer StringBulider的源码分析 献上 在讲 StringBuffer StringBuilder 之前 ,我们先看一下 ...
- 关于String StringBuffer StringBuilder
0. String对象的创建 1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...
- String, StringBuffer, StringBuilder比较
1.见API: String是不可变的字符序列: StringBuffer是线程安全的,可变的字符序列: StringBuilder是可变的字符序列: StringBuffer与String的区别是S ...
- [置顶] String StringBuffer StringBuilder的区别剖析
这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...
- Java学习笔记--String StringBuffer StringBuilder
String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...
- String StringBuffer StringBuilder (转)
转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
随机推荐
- luoguP4103 [HEOI2014]大工程
题意 建出虚树DP. 设\(f[i]\)表示i的子树的第一问答案,\(minn[i]\)表示\(i\)的子树中到\(i\)最近的关键点,\(maxx[i]\)表示\(i\)的子树中到i距离最远的关键点 ...
- webapi使用ExceptionFilterAttribute过滤器
文章 public class ApiExceptionFilterAttribute:ExceptionFilterAttribute { public override void OnExcept ...
- Vue 事件的基本使用与语法差异
"v-on:"可以简写为"@" "click"单击 "dblclick"双加 代码: <!doctype html ...
- -bash:vi:command not find 问题解决
Linux命令行输入命令执行后报“bash:vi:command not found”. 这是由于系统PATH设置问题,PATH没有设置对,系统就无法找到精确命令了. 1.在命令行中输入:export ...
- Luogu P4068 [SDOI2016]数字配对
反正现在做题那么少就争取做一题写一题博客吧 看到题目发现数字种类不多,而且结合价值的要求可以容易地想到使用费用流 但是我们如果朴素地建图就会遇到一个问题,若\(i,j\)符合要求,那么给\(i,j\) ...
- Paper | Blind Quality Assessment Based on Pseudo-Reference Image
目录 1. 技术细节 1.1 失真识别 1.2 得到对应的PRI并评估质量 块效应 模糊和噪声 1.3 扩展为通用的质量评价指标--BPRI 归一化3种质量评分 判断失真类型 加权求和 2. 总结 这 ...
- python django url直接访问txt文件。urls.py路由直接指向txt文件
from django.views.generic import TemplateView urlpatterns = [ url(r'^test/',TemplateView.as_view(tem ...
- 使用VisualStudio或VisualStudio Code作为代码比较工具
最近改了了几个还是用SVN托管的老项目,用的客户端是TortoiseSVN,本身这个工具比较好用,就是那个内置的比较文件差异的Diff工具太简陋了,由于TortoiseSVN支持第三方Diff查看器的 ...
- JavaScript 设计模式分类
设计模式的目的是为了提高代码的整洁性.降低代码的资源占用量. JS中的设计模式可分为以下三种: 1. 创建型设计模式 说明:专注于处理对象创建的机制,以合适的方式创建对象,以此来降低创建对象过程的复杂 ...
- C# 去除数字中多于的0
decimal i = decimal.Parse(Console.ReadLine()); Console.WriteLine((i).ToString(")); Console.Writ ...