String类__ 下
来源:互联网 发布:2016最新人工智能产品 编辑:程序博客网 时间:2024/04/28 19:26
StringBuffer是字符串缓冲区。
StringBuffer是一个容器。
特点:
1,长度是可变化的。
2,可以直接操作多个数据类型。
3,最终会通过toString方法变成字符串。
对数据库的四大操作
C create U update R read D delete
StringBuffer的面盆理论(有意思)
将StringBuffer看做是一个面盆,无论你向面盆里面放入或者取出什么东西,返回的是这个面盆,面盆始终都不会改变。
StringBuffer的增删操作返回的都是StringBuffer类型
StringBuffer中的常用方法
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
代码示例:
/**存储1.append();2.insert(index,数据);*/class AppendDemo {public static void main(String[] args) {StringBuffer sb = new StringBuffer();sb.append(99).append("asd");//返回的都是StringBuffer。在数据尾部加上数据sb.insert(2,"=");//在指定的位置插入数据System.out.println(sb.toString());}}
2,删除。
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
/**删除StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。StringBuffer deleteCharAt(index):删除指定位置的字符。*/class DeleteDemo {public static void main(String[] args) {StringBuffer sb = new StringBuffer("asdfghjkl");sb.delete(2,4);//删除容器中一段角标范围的内容,注意:包含头不包含尾System.out.println(sb.toString());sb.deleteCharAt(1);//删除制定索引处的字符System.out.println(sb.toString());}}
3,获取。
char charAt(int index) :返回指定索引处对应的字符
int indexOf(String str) :返回要查找的字符串的起始索引位置
int lastIndexOf(String str) :反向查找字符串的起始索引位置
int length() :获取容器的长度
String substring(int start, int end) :获取指定起始和结束位置的字符串(包含起始头,不包含结束尾)
代码示例:
/**获取。char charAt(int index) :返回指定索引处对应的字符int indexOf(String str) :返回要查找的字符串的起始索引位置int lastIndexOf(String str) :反向查找字符串的起始索引位置int length() :获取容器的长度String substring(int start, int end) :获取指定起始和结束位置的字符串*/class GetDataDemo {public static void main(String[] args) {StringBuffer sb = new StringBuffer("asdfghjkl");sop(sb.charAt(3));sop(sb.indexOf("fghj"));sop(sb.lastIndexOf("hj"));sop(sb.length());sop(sb.substring(3,5));//同样的包含头不包含尾}public static void sop(Object obj){System.out.println(obj);}}
4,修改。
StringBuffer replace(start,end,string);将容器中指定的起始和结束位置中的数据,替换成要求的字符串
void setCharAt(int index, char ch) ;将字符放入容器中的指定索引处
代码示例:
/**修改StringBuffer replace(start,end,string);将容器中指定的起始和结束位置中的数据,替换成要求的字符串void setCharAt(int index, char ch) ;将字符放入容器中的指定索引处*/class ChangeDemo{public static void main(String[] args) {StringBuffer sb = new StringBuffer("asdfghjkl");sb.replace(1,3,"qwer");System.out.println(sb.toString());sb.setCharAt(2,'p');System.out.println(sb.toString());}}
5,反转。
StringBuffer reverse();将容器中的字符串进行翻转
代码示例:
/**反转StringBuffer reverse();将容器中的字符串进行翻转*/class ReverseDataDemo {public static void main(String[] args) {StringBuffer sb = new StringBuffer("asdfghjkl");System.out.println(sb.reverse());}}
6,将缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
/**将缓冲区中指定数据存储到指定字符数组中。void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) */class SetDemo {public static void main(String[] args) {StringBuffer sb = new StringBuffer("asdfghjkl");char[] ch1 = new char[5];//存储在空的数组中,输出的结果有明显的空格char[] ch2 = {'q','w','e','r'};//存储在有具体元素的数组中,存入的元素会将原数组中的元素覆盖掉sb.getChars(1,3,ch1,1);sb.getChars(1,3,ch2,1);print(ch1);print(ch2);}public static void print(char[] ch){for (int a = 0;a<ch.length ;a++ ){System.out.print(ch[a]);}}}
存储在有具体元素的数组中,存入的元素会将原数组中的元素覆盖掉。
JDK1.5 版本之后出现了StringBuilder.
JDK1.5 版本之后出现了StringBuilder.
StringBuffer和StringBuilder的方法一样
StringBuffer和StringBuilder的区别:
StringBuffer和StringBuilder的区别:
StringBuider比StringBuffer的效率稍高StringBuffer是线程同步,安全。StringBuilder是线程不同步,不安全。单线程操作,使用StringBuilder效率高。
多线程操作,使用StringBuffer 安全。
以后开发,建议使用StringBuilder
升级三个因素:
1,提高效率。2,简化书写。3,提高安全性。
基本数据类型对象包装类。
基本数据类型 基本数据类型对象包装类
基本数据类型 基本数据类型对象包装类
byte-->Byteshort-->Shortint-->Integerlong-->Longboolean-->Booleanfloat-->Floatdouble-->Doublechar-->Character
基本数据类型对象包装类的最常见作用,
就是用于基本数据类型和字符串类型之间做转换
1.基本数据类型转成字符串。
1.1基本数据类型+""1.2基本数据类型.toString(基本数据类型值);如: Integer.toString(34);//将34整数变成"34";
2.字符串转成基本数据类型。
2.1静态方法xxx a = Xxx.parseXxx(String);示例:int a = Integer.parseInt("123");double b = Double.parseDouble("12.23");boolean b = Boolean.parseBoolean("true");2.2非静态方法Integer i = new Integer("123");int num = i.intValue();十进制转成其他进制。static String toBinaryString(int i);static String toHexString(int i );static String toOctalString(int i);其他进制转成十进制。static int parseInt(string,radix);string是其他进制表现形式,radix是要转换的进制的基数
代码示例:
/**基本数据类型对象包装类*/class DataDemo {public static void main(String[] args) {//基本数据类型转换成字符串String ch = Character.toString('a');//将字符转换成对象String in = Integer.toString(34);//将int型数据转换成对象sop(ch);sop(in);//字符串类型转换成基本数据类型//静态方法int i = Integer.parseInt(in);//将字符串转换成int型数据//非静态方法Integer s = new Integer("23");//此字符串中只能是int型数据,否则会报NumberFormatExceptionint a = s.intValue();sop(i);sop(a);//十进制转换成二进制sop(Integer.toBinaryString(6));//其他进制转换成十进制sop(Integer.parseInt("110",2));//后面的基数是说明字符串中的值是哪种进制}public static void sop(Object obj){System.out.println(obj);}}
JDK1.5版本以后出现的新特性。
1.5版本之前将基本数据类型转换成字符串
特性一:自动装箱和拆箱
Integer x = new Integer(4);1.5版本之后,可以这样定义Integer x = 4;之所以可以这样定义是因为,在定义这个对象的时候有一个自动装箱的过程。自动装箱的过程相当于new Integer(4)x = x+ 2;在使用这个变量的时候,x 进行自动拆箱。变成了int类型。和2进行加法运算。自动拆箱的过程相当于x.intValue() ,然后将结果赋值给x;
特性二:内存空间
Integer m = 128;Integer n = 128;sop("m==n:"+(m==n));输出结果为false,m和n的值超过了byte的取值范围,将会开辟新的空间Integer a = 127;Integer b = 127;sop("a==b:"+(a==b));结果为true。因为a和b指向了同一个Integer对象。因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。
0 0
- String类__ 下
- String类__ 上
- String类__【String类的应用】
- String类__【String类的应用】
- String类__【概述】【String类的常见操作】
- String类__【概述】【String类的常见操作】
- 【c++】模拟实现string类__实现增删查改
- 多线程__下
- Java基础学习笔记之六(1)__常用类String
- 剖析java中的String之__拼接
- 剖析java中的String之__拼接
- 剖析java中的String之__拼接
- 剖析java中的String之__拼接
- 剖析java中的String之__拼接
- 剖析java中的String之__拼接
- My_string类__.h
- My_string类__.cpp
- __
- jsp页面传值
- Nginx负载均衡服务器配置(Linux)
- 最近做了项目写的混淆加密代码,保留下来,下次备用
- 数据结构 - 折半插入排序(Binary Insertion Sort) 详解 及 代码(C++)
- 桌面图标弹出提示
- String类__ 下
- github加载过慢的问题
- 23种设计模式之python实现--Strategy模式
- mac在终端(Terminal)中用颜色显示不同类型文件
- win7连接打印机,显示脱机,总是需要重新连接的解决方案
- win7系统--修改锁屏背景图
- UIImage处理
- 新浪微博业务及财务业绩可视化分析
- 设置UIButton的文字显示位置、字体的大小、字体的颜色