`
Luob.
  • 浏览: 1596066 次
  • 来自: 上海
社区版块
存档分类
最新评论

java之13天 字符串StringBuffer (二)

    博客分类:
  • Java
阅读更多
StringBuffer 和 StringBuilder

/**
 * StringBuffer是字符串缓冲区一个容器
 * 特点:
 * 1.长度是可变的 
 * 2.可以直接操作多种数据类型
 * 3.最终会通过toString方法编程字符串
 * 
 * 
 * 1.存储
 * 		StringBuffer append(): 将数据作为参数添加到已有的数据结尾处.
 *      StringBuffer insert(index,数据);可以将数据插入到指定的index位置.
 * 2.删除
 *     StringBuffer delete(int start,int end): 包含 start 不包含 end
 *     StringBuffer deleteCharAt(int index):删除指定位置字符
 * 3.修改
 *     StringBuffer replace(int start,int end,String str);
 *     void setCharAt(int index,char c);
 * 4.查询
 *    char  charAt(index):获取指定角标上的字符
 *    int indexOf(String str)
 *    int lastIndexOf(String str)
 *    int length()
 *    String subString(int start)
 *    
 * 5.反转
 *   StringBuffer reverse();
 *   
 * 6.复制
 *  void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)  
 *
 *
 *
 *JDK1.5 版本之后出现了StringBuilder.
 *
 *	StringBuffer 是线程同步.
 *	StringBuilder 是线程不同步. 单线程的时候 一般都用这个  以后开发建议使用 StringBuilder
 *
 *JDK 升级 的三个因素
 *  1.提高效率
 *  2.简化书写
 *  3.提高安全性
 *
 */
public class StringBufferDemo {
	public static void sop(String str){
		System.out.println(str);
	}
	public static void method_copy(){
		StringBuffer sb=new StringBuffer("abcdef");
		char[] chs=new char[4];
		sb.getChars(0, 4, chs, 0);
		for (char c : chs) {
			sop("getChars"+c);
		}
		
	}
	
	public static void method_update(){
		StringBuffer sb=new StringBuffer("abcdef");
		sb.replace(1, 4, "JAVA");
		sop(sb.toString());
		sb.setCharAt(2,'K');  //替换指定位置上的字符
		sop(sb.toString());
	}
	
	public static void method_delete(){
		StringBuffer sb=new StringBuffer("abcdef");
		sb.delete(1,3);
		sop(sb.toString());
		
		//清空缓冲区 
		//sb.delete(0, sb.length());
		
		//删除 sb中的 c
		sb.deleteCharAt(2);// 或者 sb.delete(2,3);
		sop(sb.toString());
		
	}
	
	public static void method_create(){
		StringBuffer sb=new StringBuffer();
		StringBuffer sb1=sb.append(34);
		sop("sb==sb1:"+(sb==sb1));
		
		sb.append("sdfsdf").append(true).append(123);
		sop(sb.toString());
	}
	
	public static void main(String[] args) {
		method_create();
		method_delete();
		method_update();
		method_copy();
	}

}


装箱 和 拆箱
/**
 * 基本数据类型的对象包装类
 * byte       	Byte
 * short      	short
 * int			Integer
 * boolean 		Boolean
 * float		Float
 * double		Double
 * char			Character
 * 
 * 基本数据类型对象包装类的最常见作用
 *   1.就是用于基本数据类型和字符串类型之间的转换
 *   
 *   基本数据类型装字符串
 *    基本数据类+"";  这样就变成了一个字符串
 *    基本数据类型.toString(基本数据类型值);
 *    如: Integer.toString(34); //将34 整数类型变成 "34"
 *    
 *   字符串转成基本数据类型. 
 *     基本数据类型包装类.parseXXX(str);
 *     xxx  a=Xxxx.parseXxx(String stt);
 *     
 *     double d=Double.parstDouble("12.13");
 *     
 * 十进制转换其他进制
 * 		toBinaryString();
 *      toHexstrng();
 *      toOctalString();
 * 
 * 其他进制转换成十进制
 *    parseInt(string,radix);
 * 
 */


public class IntegerDemo {

	public static void sop(String str){
		System.out.println(str);
	}
	
	public static void main(String[] args) {
		//整数类型的最大值
		sop("int max:"+Integer.MAX_VALUE); //用于判断 表达式运算后的值 是不是在这个整数范围
		
		
		//将在一个字符串转成整数
		int num=Integer.parseInt("123"); //必须要传入数字格式的字符串
		sop("num="+(num+4));
		
		long x=Long.parseLong("123");
		
		
		boolean b=Boolean.parseBoolean("true");
		sop("boolean="+b);
		
		sop(Integer.toBinaryString(6));
		sop(Integer.toHexString(60));
		
		
		int ss =Integer.parseInt("110",10);
		sop(""+ss);
		ss =Integer.parseInt("110",2);
		ss =Integer.parseInt("3c",16);
		sop(""+ss);
		
		Integer i=new Integer("123");
		int sss=i.intValue(); //这样也可以转成 基本数据
		
		method();
		
		method1();
	}

	public static void method(){
		Integer x=new Integer("123");
		Integer y=new Integer("123");
		sop("x==y:"+(x==y));
		sop("x.equals(y):"+x.equals(y));
	}
	
	public static void method1(){
		Integer x=new Integer(4);
		Integer x1=4;  //和上面的相等    4 就是一个对象 代替了 new Integer(4); 这个是自动装箱过程只在JDK 5.0后才行. 
		
		x=x1+2;  //4 表示一个对象, 那 对象 +2 肯定是不成功的. 原因  4:进行了 自动拆箱. x1.intValue(); 然后在进行装箱赋值给 x
		//x1=x1+2;
		
		
		//享元模式
		Integer m=128;
		Integer n=128;
		sop("m==n:"+(m==n));  //false
		Integer m1=127;
		Integer n1=127;
		sop("m1==n1:"+(m1==n1)); //true ,因为 m1 和 n1 指向了同一个Integer对象.
		//因为当数值在byte范围内的时候.-128~127中,对于新特性,如果该数值已经存在,则不会在开辟新的空间.
		sop("m1.compareTo(n1)"+m1.compareTo(n1)); //0 相等
	}
}

0
3
分享到:
评论

相关推荐

    毕向东13字符串01

    第二部分“黑马程序员_毕向东_Java基础视频教程第13天-03-String(常见功能-转换).avi”会详细讨论字符串的各种转换方法。`String`类提供了多种转换方法,如`toLowerCase()`和`toUpperCase()`用于大小写转换;`trim()...

    字符串1302

    本节视频教程"Java基础视频教程第13天 string字符串02"深入探讨了Java中字符串对象的创建、常用方法以及一些核心特性。下面将详细解析这些知识点。 1. **字符串对象的创建** Java中的字符串是不可变的,这意味着...

    字符串1306

    在本教程"字符串1306"中,我们将深入学习Java中的字符串处理,特别是通过`StringBuffer`类来实现字符串的高效修改和管理。本教程对应于Java基础视频教程的第13天,由知名教育机构黑马程序员的讲师毕向东讲解。 首先...

    字符串1304

    在第13天的学习中,讲师毕向东深入讲解了字符串的操作和应用,特别是通过两个实践练习——字符串练习2和字符串练习3,来巩固学员对字符串的理解。 Java中的String类是不可变的,这意味着一旦创建了String对象,它的...

    字符串1305

    在本套Java基础视频教程的第13天,主要讲解了字符串对象的使用,特别是`String`类以及与之相关的`StringBuffer`和`StringBuilder`类。以下是关于这些知识点的详细解释: 1. **String类**: - `String`是Java中的一...

    字符串1307

    本节视频教程"Java基础视频教程第13天 string字符串07"深入探讨了Java中的字符串处理,特别是围绕基本数据类型与对象包装类之间的交互。 首先,字符串在Java中是不可变的,这意味着一旦创建了一个字符串对象,就不...

    21天学通Java.第7版-中文版-良心积分价

    学习如何使用StringBuilder或StringBuffer进行字符串拼接以提高效率。 7. **异常处理**:Java的异常处理机制使得程序更加健壮,通过try-catch-finally语句块捕获和处理运行时错误。理解Checked和Unchecked异常的...

    Java2 编程21天自学通

    7. **字符串与字符串处理**:掌握String类的常用方法,如concat、substring、indexOf等,以及StringBuffer和StringBuilder类的使用。 8. **集合框架**:了解ArrayList、LinkedList、HashSet、HashMap等集合类,以及...

    21天java学习PPT

    8. **字符串**:String类的特性和常用方法,字符串不可变性,以及StringBuilder和StringBuffer的使用。 9. **异常处理**:理解异常的概念,如何使用try-catch-finally结构捕获和处理异常,以及自定义异常。 10. **...

    java 2 编程21天自学通

    另外,StringBuilder和StringBuffer用于构建和修改字符串,尤其在多线程环境下。 7. **异常处理**:Java通过try-catch-finally语句块进行异常处理,提供了一种统一的错误处理机制。了解Checked异常和Unchecked异常...

    21天自学速成 Java 语言 电子书

    6. **字符串操作**:熟悉String类的常用方法,以及StringBuilder和StringBuffer的使用。 7. **输入/输出流**:学习文件I/O操作,包括File类、Scanner类和PrintWriter类,以及流的概念。 8. **面向对象进阶**:深入...

    java16天从入门到精通 畅购-讲师源码md课件.zip

    9. **Day 9:字符串处理** - 使用String类和StringBuilder/StringBuffer,进行字符串操作。 10. **Day 10:集合框架** - 了解ArrayList、LinkedList、HashSet、HashMap等集合类的使用。 11. **Day 11:IO流** - ...

    Java范例开发大全 (源程序)

     6.2 字符串缓存类StringBuffer 143  实例106 创建字符串缓存类 143  实例107 提取单个字符 144  实例108 给指定字符赋值 145  实例109 插入新的字符 146  实例110 插入新的字符串 146  实例111 获取...

    21天学通Java.第7版

    6. **字符串处理**:String类在Java中扮演重要角色,学习其不可变性、常用方法(如concat、substring、indexOf、replace等)以及StringBuilder和StringBuffer的使用。 7. **异常处理**:Java提供了异常处理机制,...

    21天精通java

    8. **字符串**:Java中的`String`类是不可变的,处理字符串时通常会用到`StringBuilder`或`StringBuffer`类。 9. **异常处理**:Java使用异常处理机制来处理程序运行时可能出现的错误,通过try-catch-finally结构...

    Java 面试题 word文档

    2. 字符串的操作:写一个方法,实现字符串的反转,如:输入 abc,输出 cba。 - 可以使用 StringBuilder 的 reverse() 方法来实现字符串的反转。 3. 数据类型之间的转换 - 如何将数值型字符转换为数字(Integer,...

    java范例开发大全源代码

     6.2 字符串缓存类StringBuffer 143  实例106 创建字符串缓存类 143  实例107 提取单个字符 144  实例108 给指定字符赋值 145  实例109 插入新的字符 146  实例110 插入新的字符串 146  实例111 ...

    java范例开发大全

    6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的字符串 146 实例111 获取字符串的子串 147 实例...

    2014年Java最全面试题以及答案.

    String是不可变的字符序列,StringBuffer是可变的字符序列,后者在执行改变字符串的操作时,效率更高。 42. 用java代码编写堆栈。 可以使用数组或者ArrayList来实现栈的功能,定义push、pop、peek等方法来操作栈顶...

    18天java学习笔记

    5. **字符串处理**:Java中的String类,字符串的创建、操作和比较,以及StringBuilder和StringBuffer的使用。 6. **数组**:一维数组和多维数组的创建、初始化和遍历,以及数组的复制和排序。 7. **异常处理**:...

Global site tag (gtag.js) - Google Analytics