您的位置:首页 > Web前端

String以及StringBuffer相关应用讲解

2016-03-03 20:12 375 查看
String以及StringBuffer相关应用讲解
Java把字符串当作对象来处理,它提供了一系列方法对整个字符串进行操作,使得对字符串的处理更加容易和规范。而对于字符串的操作通常是通过引用数据类型进行操作的,下边着重讲解String和StringBuffer对字符串的操作以及两者之间的区别。

 

String属于包裹类引用数据类型,对于变量的声明通常有两种方式,其一通过字符串常量进行声明,如:String str=”Hello world”。其二还可以通过new的方式进行声明,如:String str = new String (“Hello world”)。且String所声明的数据,其缓存长度是固定的,即不能对数据进行修改,在如下操作中:System.out.println(str.concat(“haha”)),我们可以认为是抛弃原有的内存地址,随后JVM默认新声明一个str,随后将其重新赋值。

而对于String的两种命名方式:String str1=”hello”;Stringstr2=new String (“hello”)又存在怎样的不同?分析发现,str1代表的是高速缓存数据器中所存储的hello ,str2指的是JVM在内存中随机划分的区域用于存放hello的地址代码。故String st3=str1代表的是将str1的值hello赋给str3;String str4=st2代表的是将st2所代表的地址赋给str4。即str1可以进行逻辑关系==的比较,str2只能进行逻辑关系equals的比较。

String所常用的函数通常为str.length()   ,str.toUpperCase() ,str.toLowerCase()  ,str.equals(str2)  ,str.equalsIgnoreCase(str2)  ,str.substring(n)  ,str.substring(m,n)   ,str.concat(“haha”)   ,str.contain(“ha”)   ,str.charAt(n)  ,str.indexOf(‘ ’)   ,str.trim() ,str.split(“ 
”)。

注意String函数进行操作后值未发生变化,但是StringBuffer进行操作后值发生变化。具体使用方法如下:

package com.yunhe.study;

 

public class StringQuestion {

       publicstatic void main (String[] args){

              Stringst1="Hello World";

              Stringst2="  Hello World   ";

              Stringst3=st1.toLowerCase();

              System.out.println(st1.length());//length()函数的主要功能是测试st1的长度,测试发现String型数据的长度是固定的

              System.out.println(st1.toLowerCase());//toLowerCase()函数的主要功能是将对应的字符串全部转化为小写

              System.out.println(st1.toUpperCase());//toUpperCase()函数的主要功能是将对应的字符串全部转化为大写

              System.out.println(st1.equals(st3));//equals()函数的主要功能是判断两个字符串的数值是否完全相同,区分大小写

              System.out.println(st1.equalsIgnoreCase(st3));//equalsIgnore()主要是判断两个字符串的数值是否相同,不区分大小写,输出的结果是boolean

              System.out.println(st1.substring(3));//substring(n)代表从第n索引位开始截取字符

              System.out.println(st1.substring(3,6));//substring(m,n)代表从第m索引位提取至n索引位字符

              System.out.println(st1.concat("haha"));//concat("")代表对其重新声明并赋值在其后边添加字符,('')是非法字段

              System.out.println(st1.contains("ll"));//contains("")代表的是查找该字段中是否存在""的字段,('')是非法字段

              System.out.println(st1.charAt(3));//charAt(n)代表的是输出第n索引位的字符

              System.out.println(st1.indexOf('e'));//indexOf('')代表输出该字符的索引位,当查找到第一个时自动停止

              System.out.println(st1.trim());//trim()即自动清除字符串两段的空格

              System.out.println(st1.split(""));//trim()即自动拆分成数组形式

 

       }

 

}

 

 

 

StringBuffer属于非包类引用数据类型,声明方法只有一种,如:StringBuffer stb=new StringBuffer (“   ”)。该数据类型,属于长度可变的数据类型,即不仅规定了该数据类型的实际长度,对于系统默认16位缓存,不足时会自动添加。对于StringBuffer数据类型可以进行追加,插入,替换,消除等操作,且在操作过程中,不需重新进行申明。对于系统不断接受字符,具有可以减缓系统负荷的效果。

StringBuffer常见的函数有stb.length()  ,stb.capacity()  ,stb.append(“字符串,字符,数值  ”)  ,stb.insert(n, “haha”)    ,stb.delete(m,n)

package com.yunhe.study;

 

public class StringBufferQuestion {

       publicstatic void main (String[] args){

              StringBufferstb=new StringBuffer ("hello");

              Stringstr ="haha";

              System.out.println(stb.length());//length()用于显示字符串的实际长度

              System.out.println(stb.capacity());//capacity()用于显示字符串的总长度

              System.out.println(stb.append(1));//append("")用于在字符串后边添加新的内容

              System.out.println(stb.insert(2,"haha"
4000
));//insert(n,"")在第n索引位之前插入字符

              //System.out.println(stb.(1,3,"hehe"));

              System.out.println(stb.delete(2,5));//delete(n,m)即从第n索引位删除至第m索引位

             

       }

}

 

 

 

StringBuffer类型可通过toString()转化为String类型StringBuffer stb=new StringBuffer ("hello");String str =stb.toString();

StringBuffer和String对于优化系统具有很大的意义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: