17/7/31学习笔记01
来源:互联网 发布:同行业数据查询 编辑:程序博客网 时间:2024/06/07 11:50
1.StringBuffer类的概述
01.StringBuffer 是线程安全的可变字符串; StringBuffer与String的区别是: 前者长度内容可变,后者不可变; 如果前者使用字符串拼接不会浪费太多资源;02.StringBuffer的构造方法: public StringBuffer():无参构造方法 public StringBuffer(int capacity):指定容量的字符串缓冲区对象//初始容量为16; public StringBuffer(String str):指定字符串内容的字符串缓冲区对象
// public StringBuffer():无参构造方法 StringBuffer sb = new StringBuffer(); System.out.println("sb:" + sb); System.out.println("sb.capacity():" + sb.capacity()); System.out.println("sb.length():" + sb.length()); System.out.println("--------------------------"); // public StringBuffer(int capacity):指定容量的字符串缓冲区对象 StringBuffer sb2 = new StringBuffer(50); System.out.println("sb2:" + sb2); System.out.println("sb2.capacity():" + sb2.capacity()); System.out.println("sb2.length():" + sb2.length()); System.out.println("--------------------------"); // public StringBuffer(String str):指定字符串内容的字符串缓冲区对象 StringBuffer sb3 = new StringBuffer("hello"); System.out.println("sb3:" + sb3); System.out.println("sb3.capacity():" + sb3.capacity());//21=16+5; System.out.println("sb3.length():" + sb3.length());
2.StringBuffer的常用功能
01.StringBuffer的添加功能:public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身 public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
StringBuffer sb = new StringBuffer(); sb.append("hello").append(true).append(12).append(34.56); System.out.println("sb:" + sb);//hellotrue1234.56 sb.insert(5, "world"); System.out.println("sb:" + sb);//helloworldtrue1234.56
02.StringBuffer的删除功能 public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身 public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身
StringBuffer sb = new StringBuffer();sb.append("hello").append("world").append("java");// 需求:我要删除world这个字符串 sb.delete(5, 10);//包左不包右// 需求:我要删除所有的数据 sb.delete(0, sb.length());
03.StringBuffer的替换功能: public StringBuffer replace(int start,int end,String str):从start开始到end用str替换,包左不包右
// 创建字符串缓冲区对象 StringBuffer s = new StringBuffer(); // 添加数据 sb.append("hello"); sb.append("world"); sb.append("java"); System.out.println("s:" + s); // public StringBuffer replace(int start,int end,String // str):从start开始到end用str替换 // 需求:我要把world这个数据替换为"节日快乐" s.replace(5, 10, "节日快乐"); System.out.println("s:" + s);
04.StringBuffer的反转功能: public StringBuffer reverse()//字符串反转 05.StringBuffer的截取功能: public String substring(int start)//注意返回的不是本身了,是String型的 public String substring(int start,int end)
// 创建字符串缓冲区对象 StringBuffer s = new StringBuffer(); // 添加元素 s.append("hello").append("world").append("java"); System.out.println("s:" + s); // 截取功能 // public String substring(int start) String s = s.substring(5); System.out.println("s:" + s); System.out.println("s:" + s); // public String substring(int start,int end) String ss = sb.substring(5, 10); System.out.println("ss:" + ss); System.out.println("s:" + s);
3.StringBuffer的练习
01.StringBuffer与String的相互转换 String to StringBuffer: 方法一: String s = "hello"; // 通过构造方法 StringBuffer sb = new StringBuffer(s); 方法二: //通过append()方法 StringBuffer sb2 = new StringBuffer(); sb2.append(s); StringBuffer to String: 方法一: StringBuffer buffer = new StringBuffer("java"); //通过构造方法 String str = new String(buffer); 方法二: //通过toString()方法 String str2 = buffer.toString();02.通过StringBuffer把数组拼接成一个字符串
//将1,2,3,4,5,变成【1,2,3,4,5】public class arraytostring { public static void main(String[] args) { int[] arr={1,2,3,4,5}; System.out.println(change(arr)); } public static String change(int[] arr) { StringBuffer s=new StringBuffer(); s.append("["); s.append("["); for (int x = 0; x < arr.length; x++) { if (x == arr.length - 1) { s.append(arr[x]); } else { s.append(arr[x]).append(", "); } } s.append("]"); return s.toString(); }}
03.同过StringBuffer进行字符串反转
public class reverse {public static void main(String[] args) { String s="ilu"; System.out.println(myReverse(s));}public static String myReverse(String s) { StringBuffer ssBuffer=new StringBuffer(s); ssBuffer.reverse(); // 简易版 //return new StringBuffer(s).reverse().toString(); return ssBuffer.toString();}}
04.判断字符串是否对称案例
import java.util.Scanner; public class reverse { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入字符串"); String s = input.next(); boolean b=myReverse(s); System.out.println(b); } public static boolean myReverse(String s) { return new StringBuffer(s).reverse().toString().equals(s); }}
4.StringBuffer的面试题
01.String,StringBuffer,StringBuilder的区别? A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的。 B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高02.StringBuffer和数组的区别? 二者都可以看出是一个容器,装其他的数据。 但是呢,StringBuffer的数据最终是一个字符串数据。 而数组可以放置多种数据,但必须是同一种数据类型的。03.String和StringBuffer分别作为参数传递 形式参数: 基本类型:形式参数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数
- 注意:
String作为参数传递,效果和基本类型作为参数传递是一样的。
public class StringBufferDemo { public static void main(String[] args) { String s1 = "hello"; String s2 = "world"; System.out.println(s1 + "---" + s2);// hello---world change(s1, s2); System.out.println(s1 + "---" + s2);// hello---world StringBuffer sb1 = new StringBuffer("hello"); StringBuffer sb2 = new StringBuffer("world"); System.out.println(sb1 + "---" + sb2);// hello---world change(sb1, sb2); System.out.println(sb1 + "---" + sb2);// hello---worldworld } public static void change(StringBuffer sb1, StringBuffer sb2) { sb1 = sb2; sb2.append(sb1); } public static void change(String s1, String s2) { s1 = s2; s2 = s1 + s2; }}
阅读全文
0 0
- 17/7/31学习笔记01
- 17/7/31学习笔记02
- 17/7/31学习笔记03
- 17/7/31学习笔记04
- 17/7/29学习笔记01
- 2012-01-31 学习笔记
- 7-17 java学习笔记
- 17/8/2学习笔记01
- 17/7/29学习笔记02
- java学习笔记31
- Java学习笔记31
- Xcode9学习笔记31
- Spring学习笔记17
- 每日学习笔记(17)
- hibernate学习笔记17
- java学习笔记17
- 2014.12.17学习笔记
- Gallery3d 学习笔记(17)
- 《曾国潘》
- 原型和原型链
- Python数据结构--单链表
- bash: 一键安装TensorFlow
- c#中Class和Struct使用与性能的区别
- 17/7/31学习笔记01
- caffe crop层理解
- 7.31 C
- web消除用户的后退操作
- Python数据结构--栈
- webservice之xfire服务搭建及客户端请求(maven搭建项目)
- 全局变量和局部变量
- linux常用变量含义
- 货拉拉APP系统 软件开发