Java高级特性-String、StringBuffer和StringBuilder
Java高级特性-String、StringBuffer和StringBuilder

String
Java语言中的字符串值都属于String类,虽然有其他方法表示字符串(如字符串数组),但Java一般使用String类作为字符串的标准格式,Java编译器将字符串作为String对象,String类是字符串常量,是不可更改的常量。
String s1="abc";
String s2=new String "abc";
虽然内容相同但是new后其值就不同了
String对象一旦被创建就不能改变(与常量一样),如果需要进行大量字符串的修改操作,应该使用StringBuffy或者StringBuilder类或者字符串数组,最终结果可以转换为String对象。
StringBuffer
String和StringBuffer他们都可以存储和操作字符串,即包含多个字符的字符串数据。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
StringBuffer类的构造函数
public StringBuffer()
创建一个空的StringBuffer类的对象。注意:如果参数length小于0,将触发NegativeArraySizeException异常,
public StringBuffer( int length )
1.StringBuffer线程安全的可变字符串序列。
2.一个类似于String的字符串缓冲区,通过某些方法的调用可以改变该序列的长度和内容。
3.每个字符串缓冲区都有一定的容量,只要字符串缓冲区所包含的字符串序列的长度没有超此容量,就无需非配新的内部管冲区数组。
4.如果内部缓冲区溢出,则此容量自动增大。
StringBuilder
从JDK1.5开始,为StringBuffer补充了一个单个线程使用的等价类,即StringBuilder。
与StringBuffy相比,通常优先使用StringBuilder类,因为它支持相同所有的操作,但由于它不执行同步,所以速度更快。
StringBuilder中的使用方法:
public int length(); //字符数组
public int capacity(); //字符容量
public StringBuffer append (String str); //向字符数组中添加字符或者添加一个字符串
public StringBuffer insert(int offset, String str); //向字符数组的指定位置插入一个字符或者字符串
public int indexOf(String str); //查找字符串在字符数组中首次出现的字符的下标
public int indexOf(String str,int fromindex); //在字符数组指定位置向后查找字符串首次出现的字符的下标
public int lastindexOf(String str); //查找字符串在字符数组中最后一次出现的字符的下标
public StringBuffer reverse(); //字符串反转
这里我只是给大家列举了StringBuilder中的部分方法,剩下的可以参考API文档,没有API文档的朋友可以发邮件找我要,邮箱地址:www.CAzige0411@163.com www.xiaomuca@qq.com
StringBuilder举例:
public class StringBuilderDemo{
public static void main(String []args){
StringBuilder stringBuilder=new StringBuilder();
StringBuilder stringBuilder=new StringBuilder(100); //默认不超过16个字符,初始化字符串容量100
StringBuilder stringBuilder=new StringBuilder("abc");
stringBuilder.append("StringBuffer");
stringBuilder.append(1);
stringBuilder.append(true);
System.out.println(stringBuilder.length());
System.out.println(stringBuilder.capacity());
stringBuilder.insert(5,"DemoExcemple");
System.out.println(stringBuilder.toString());
stringBuilder.replace(5,7,"Rading PostDemo");
}
}
Java高级特性-String、StringBuffer和StringBuilder的更多相关文章
- JAVA高级特性--String/StringBuffer/Builder
String String对象一旦创建就不能改变 是常量 需要进行大量字符串操作应采用StringBuffer/StringBuilder 最终结果转换成String对象 StringBuffer ...
- Java String, StringBuffer和StringBuilder实例
1- 分层继承2- 可变和不可变的概念3- String3.1- 字符串是一个非常特殊的类3.2- String 字面值 vs. String对象3.3- String的方法3.3.1- length ...
- Android/Java 中的 String, StringBuffer, StringBuilder的区别和使用
Android 中的 String, StringBuffer 和 StringBuilder 是移动手机开发中经常使用到的字符串类.做为基础知识是必须要理解的,这里做一些总结. A.区别 可以从以下 ...
- String, StringBuffer and StringBuilder
一 String 概述: String 被声明为 final,因此它不可被继承. 在 Java 8 中,String 内部使用 char 数组存储数据. public final class Stri ...
- paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...
- String,StringBuffer与StringBuilder
1. String,StringBuffer与StringBuilder的区别 String:存储在常量池中:是不可变的字符序列,任何对String值的改变都会引发新的String对象的生成,因此执行 ...
- java高级特性增强
第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...
- String,StringBuffer和StringBuilder
String,StringBuffer和StringBuilder分别应该在什么情况下使用? String 是Java的字符串类,其实质上也是用Char类型存储的,但是除了hash属性,其他的属性都声 ...
- Java高级特性——反射机制(第二篇)
在Java高级特性——反射机制(第一篇)中,写了很多反射的实例,可能对于Class的了解还是有点迷糊,那么我们试着从内存角度去分析一下. Java内存 从上图可以看出,Java将内存分为堆.栈.方法区 ...
随机推荐
- web页面和小程序页面实现瀑布流效果
小程序实现瀑布流效果,和web页面差不多,都要经过以下步骤: 1).加载图片,获取图片的宽高度: 2).根据页面需要显示几列计算每列的宽度: 3).根据图片真实宽度和每列的宽度比,计算出图片需要显示的 ...
- Excel—宏表函数
首先有一个知识点,宏表函数是不能直接在单元格中写公式的,需要先定义一个名称(“公式”选项卡——“定义名称”),然后在“定义名称”中的“定义位置”中写入宏表函数. GET.CELL(调取单元格信息的函数 ...
- 022 包含min函数的栈
1.题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 2.分析 最初想法是定义一个成员变量min来存放最小元素,但是当最小元素弹出后,min ...
- java编程(1)——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)
编程应用背景: 使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample 类代码: package com.zhang.java; publ ...
- 手写数字识别 ----Softmax回归模型官方案例注释(基于Tensorflow,Python)
# 手写数字识别 ----Softmax回归模型 # regression import os import tensorflow as tf from tensorflow.examples.tut ...
- java位移运算符3 转
https://www.cnblogs.com/winsker/p/6728672.html 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 理解java移位运算符 运算 ...
- 创建多线程的方式:继承Thread类和实现Runnable接口
1.通过继承Thread类的方式创建多线程(这里只是简单的代码演示创建多线程的方法) package com.baozi.exer; public class ThreadDemo { public ...
- 执行grunt命令报错 Cannot find module 'coffee-script'
Failed to list grunt tasks in yudian-frontend-salesplatform\Gruntfile.js: process finished with exit ...
- Go smtp发送邮件,带附件
package main import ( "net/smtp" "bytes" "time" "io/ioutil" ...
- [tkinter]为列表框添加滚动条
为了给列表框配备滚动条,看来很多别人的博客 终于解决了问题 ,现在我总结一下 from tkinter import * root = Tk() lb = Listbox(root) scr = Sc ...