• 字符串生成器


    字符串生成器


    创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的。但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。而String-Builder类,大大提高了频繁增加字符串的效率。

    例:

    public class Jerque { // 新建类
    	public static void main(String[] args) { // 主方法
    		String str = ""; // 创建空字符串
    		// 定义对字符串执行操作的起始时间
    		long starTime = System.currentTimeMillis();
    		for (int i = 0; i < 10000; i++) { // 利用for循环执行10000次操作
    			str = str + i; // 循环追加字符串
    		}
    		long endTime = System.currentTimeMillis(); // 定义对字符串操作后的时间
    		long time = endTime - starTime; // 计算对字符串执行操作的时间
    		System.out.println("Sting消耗时间:" + time); // 将执行的时间输出
    		StringBuilder builder = new StringBuilder(""); // 创建字符串生成器
    		starTime = System.currentTimeMillis(); // 定义操作执行前的时间
    		for (int j = 0; j < 10000; j++) { // 利用for循环进行操作
    			builder.append(j); // 循环追加字符
    		}
    		endTime = System.currentTimeMillis(); // 定义操作后的时间
    		time = endTime - starTime; // 追加操作执行的时间
    		System.out.println("StringBuilder消耗时间:" + time); // 将操作时间输出
    	}
    }
    

    运行结果:
    Sting消耗时间:1355
    StringBuilder消耗时间:2

    通过这一实例可以看出,两种操作执行的时间差距很大。如果在程序中频繁地附加字符串,建议使用StringBuilder。新创建的StringBuilder对象初始容量是16个字符,可以自行指定初始长度。如果附加的字符超过可容纳的长度,则StringBuilder对象将自动增加长度以容纳被附加的字符。若要使用StringBuilder最后输出字符串结果,可使用toString()方法。利用StringBuilder类中的方法可动态地执行添加、删除和插入等字符串的编辑操作。该类的常用方法如下:

    1.StringBuilder append(String str)方法

    其作用是把一个字符串追加到当前的StringBuilder后面,最后返回修改后StringBuilder对象。

    语法:

    builder.append(String str);
    

    例:

    public class StringBuilderDemo  {
    
    	  public static void main(String[] args) {
    	  
    	    StringBuilder str = new StringBuilder("tutorials ");//创建字符串生成器
    	    System.out.println("string = " + str);
    	    
    	    str.append("point");	//添加“point”到字符串生成器后
    	
    	    System.out.println("After append = " + str);		//输出生成后的字符串
    	    
    	    str = new StringBuilder("1234 ");
    	    System.out.println("string = " + str);
    	    
    	    str.append("!#$%");
    	   
    	    System.out.println("After append = " + str);
    	  }
    	
    
    }
    

    运行结果:
    string = tutorials
    After append = tutorials point
    string = 1234
    After append = 1234 !#$%

    2.StringBuilder append(StringBuffer sb)方法

    该方法将参数sb指定的字符串缓存StringBuffer的值追加到字符串生成器中。

    语法:

    builder.append(StringBuffrer sb);
    

    例:

    public class StringBuilderDemo {
    	public static void main(String[] args) {
    		  
    	    StringBuilder str = new StringBuilder("compile ");	//创建字符串生成器
    	    System.out.println("string = " + str);	//输出字符串生成器的内容
    	    StringBuffer buff = new StringBuffer("online ");	//将字符串缓存到StringBuffer中
    	    System.out.println("buffer = " + buff);	//输出缓存值
    	     
    	    str.append(buff);	//将缓存值追加到字符串生成器中
    
    	    System.out.println("After append = " + str);	//输出追加后的值
    	  }
    
    
    }
    
    

    运行结果:
    string = compile
    buffer = online
    After append = compile online

    3.StringBuilder insert(int offset ,String str)方法

    该方法用于向字符串生成器中的指定位置插入数据内容。

    语法:

    builder.inset(int offest , String str);
    

    例:

    public class StringBuilderDemo {
    	public static void main(String[] args) {
    		  
    	    StringBuilder str = new StringBuilder("tutorials website");
    	    //创建字符串生成器
    	    System.out.println("string = " + str);	//输出字符串生成器的内容
    	        
    	    str.insert(9, "point");	//在指定位置插入字符串
    
    	    System.out.print("After insertion = ");	
    	    System.out.println(str.toString());
    	  //输出插入字符串后的值
    	  }      
    
    
    }
    

    运行结果:
    string = tutorials website
    After insertion = tutorialspoint website

    4.StringBuilder delete(int start,int end)方法

    该方法用于移除此序列的子字符串中的字符。该子字符串从指定的start处开始,一直到索引end-1处的字符,如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。

    语法:

    builder.delete(int start,String end);
    

    例:

    public class StringBuilderDemo {
    	public static void main(String[] args) {
    		  
    	    StringBuilder str = new StringBuilder("Java lang package");	//创建字符串生成器
    	    System.out.println("string = " + str);
    	 
    	    str.delete(4, 9);	//删除指定位置的内容
    	    System.out.println("After deletion = " + str);
    	  }
    
    
    }
    

    运行结果:
    string = Java lang package
    After deletion = Java package

    5.String toString()方法

    该方法将字符生成器中的值转换为字符串

    语法:

    Str.toString();
    

    例:

    public class Test {
    
    	public static void main(String[] args) {
    		
    		StringBuilder str = new StringBuilder("Hello World");
    	    System.out.print("Return Value :");
    	    System.out.println(str.toString());
    
    
    	}
    
    }
    

    运行结果:
    Return Value :Hello World

  • 相关阅读:
    20145202、20145225、20145234 《信息安全系统设计基础》实验二 固件设计
    20145225 《信息安全系统设计基础》第12周学习总结
    GDB调试汇编堆栈过程分析
    20145118 《Java程序设计》课程总结
    JAVA第十周《网络编程》学习内容总结
    JAVA课程实验报告 实验五 JAVA网络编程及安全
    20145118《Java程序设计》 第9周学习总结
    20145118 《Java程序设计》 实验报告四
    20145118《Java程序设计》 第8周学习总结
    20145118 《Java程序设计》 实验报告三
  • 原文地址:https://www.cnblogs.com/cxf1404445126/p/7259536.html
Copyright © 2020-2023  润新知