欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA入门基础StringBuffer,String,数组知识

程序员文章站 2022-08-18 08:53:18
JAVA第十一天学习StringBuffer类StringBuffer sb=new StringBuffer(); 创建一个空的字符容器,初始容量为16个字符,在构建时就可以创建容器的容量 StringBuffer sb=new StringBuffer(100)//创建一个初始容量为100的容器,在构建时也可以加入字符串StringBuffer sb=new StringBuffer(“dasd”) StringBuffer 重写了toString()方法,然后把容器中的数据转换成字符...

  • StringBuffer类
  1. StringBuffer sb=new StringBuffer(); 创建一个空的字符容器,初始容量为16个字符,在构建时就可以创建容器的容量 StringBuffer sb=new StringBuffer(100)//创建一个初始容量为100的容器,在构建时也可以加入字符串StringBuffer sb=new StringBuffer(“dasd”) StringBuffer 重写了toString()方法,然后把容器中的数据转换成字符串返回

  2. sb.append(“abc”)//append()向容器中加入数据

  3. int capacity=sb.capacity()//获取容器的容量

  4. int length=sb.length();//获取容器的长度

    示例:

    public class MyTest {
        public static void main(String[] args) {
            StringBuffer sb = new StringBuffer();
            StringBuffer sb2 = sb.append("abc");
    		//append("abc"); 往容器中追加数据,返回的还是原来的那个容器对象。
            System.out.println(sb==sb2);//true  两个是同一个对象
            sb.append(100).append(200).append(true).append(new char[]{'a','b','c'});//因为返回的还是原来的对象所以可以采用链式编程给里面添加数据
            System.out.println(sb);//打印:"abc100200trueabc"
        }
    } 
  5. String s="你好啊我爱你"; 
    StringBuffer s1=new StringBuffer(s);
    
    int statr=s1.indexof("好");//获取好处的索引
    StringBuffer ss=s1.replace(start,str.length(),"")//根据起始索引终止索引替换容器中的一部分内容,返回的是容器本身
    
    StringBuffer reverse = s1.reverse();
    System.out.println(reverse);//将容器中的内容反转,返回的还是同一个对象
    
    String str2 = s1.substring(0, 5); //含头不含尾,截取容器中索引片段内的字符 返回的
    System.out.println(str2); 
  6. 将String转化为StringBuffer类

String str="abc";
方法一:
    StringBuffer sb = new StringBuffer(str);//直接将字符串加入到容器中
方法二:
	调用方法append()
	StringBuffer sb2 = new StringBuffer();
    sb2.append(str);
方法三:
	调用方法insert()
	StringBuffer sb3 = new StringBuffer();
    sb2.insert(0,str);//在位置零出插入str 
  1. 将StringBuffer类转化为String
StringBuffer sb = new StringBuffer("aaaaa");
方法一:
String s=sb.toString();//重写了toString()将其转化为字符串
方法二:
String ss=sb.subString(0);//从零开始截取容器中的数据
方法三:
String sss=new String(sb);//利用String的构造方法将其转化为字符串 
  1. String 类型作为参数传递,属于值传递。会这把字符串的值传递过去
    StringBuffer类型可以看做传引用,会把地址传过去
    示例:
    public class MyTest {
        public static void main(String[] args) {
            String str = "abc";
            change(str);
            System.out.println(str);//abc
            StringBuffer sb = new StringBuffer("Hello");
            change(sb);
            sb.reverse();
            System.out.println(sb);  //呵呵哈哈olleH
        }
    
        private static void change(StringBuffer sb) {
            sb.append("哈哈").append("呵呵");
        }
    
        private static void change(String str) {
            str+="你好";
            System.out.println(str); //abc你好
        }
    } 
  2. StringBuffer与StringBuild的区别

StringBuffer  线程安全的字符序列,效率低
StringBuilder 一个可变的字符序列,线程不安全的,效率高,此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
 建议优先采用StringBuilder类,因为在大多数实现中,它比 StringBuffer 要快。 
  • 数组 的相关操作
int []arr={8,0,3,4,0,6,4};
int []aff2={1,2,3,4,0,6,5,7,9,8};
Arrays.sort(arr);//排序
System.out.println(Arrays.toString(arr));

int index=Arrays.binarySearch(arr,6);//二分查找
System.out.println(index)

boolean b=Arrays.equals(arr,arr2);//判断两个数组是否相等
System.out.println(b);

int []arr3=Arrays.copyOf(arr,3);//复制arr数组的三个元素,从头开始
int []arr4-Arrays.copyOfRange(arr,3,6);//从3索引开始6索引结束  复制arr数组到arr4  含头不含尾
System.out.println(Arrays.toString(arr3));
System.out.println(Arrays.toString(arr4)); 

本文地址:https://blog.csdn.net/Dhxy1030/article/details/107682763