Java中String、StringBuffer用法总结

一.创建String对象


String str=new String()//字符串中无内容

String s=new String("we are students");//字符串中有内容

String类还有两个较常用的构造方法
(1) String(char a[])用一个字符数组a创建一个String对象。例如:

char[] a={'J','a','v','a'};
String s=new String(a);

上述过程相当于
String s=new String("Java");

(2) String(char a[ ] , int startIndex , int count)提取字符数组a中的一部分字符创建一个String对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数

char a[]={'我','们','是','学','生'};
String s=new String(a,2,3);

在这里插入图片描述

2.创建字符串数组


String [] str = new String [20];//20为字符串数组长度

二、String类的常用方法

1、length()方法用来获取一个String对象的字符序列的长度

String str="abccc";
int l=str.length();

2、equals(String s)方法比较当前对象的字符序列是否与参数s指定的String对象的字符序列相同

 String str="你";
 String str1="好";
 String str2="你";
 System.out.println(str.equals(str1));//false
 System.out.println(str.equals(str2));//true

3、 startsWith() 、 endsWith()判断当前String对象的字符序列前缀或后缀是否是参数指定的String对象s的字符序列

  String str="天干物燥,小心火烛";
  String str1="天气预报,阴转小雨";
  System.out.println(str1.startsWith("天气"));//true
  System.out.println(str.startsWith("天气"));//false
  System.out.println(str.endsWith("小雨"));//false
  System.out.println(str1.endsWith("小雨"));//true

4、compareTo(String s),按字典序与参数指定的String对象s的字符序列比较大小。如果当前String对象的字符序列与s的相同,该方法返回值0;如果大于s的字符序列,该方法返回正值;如果小于s的字符序列,该方法返回负值

String str="abcde";
System.out.println(str.compareTo("boy"));//-1
System.out.println(str.compareTo("aba"));//2
System.out.println(str.compareTo("abcde"));//0

按字典序比较两个String还可以使用compareToIgnoreCase(String s)方法,该方法对比时不区分大小写

5、contains(String s)判断当前String对象的字符序列是否包含参数s的字符序列

 String str="abcde";
 System.out.println(str.contains("bcd"));//true
 System.out.println(str.contains("bcde"));//true
 System.out.println(str.contains("bcc"));//false

6、indexOf(String s)和lastIndexOf(String s)从当前String对象的字符序列的0索引位置开始检索首次或最后一次出现s的字符序列的位置,并返回该位置,如果没有检索到,返回值为-1;indexOf(String s,int startpoint)方法是一个重载方法,参数startpoint的值用来指定索引的开始位置

 String str="I am a good girl";
 System.out.println(str.indexOf("o"));//8
 System.out.println(str.lastIndexOf("o"));//9
 System.out.println(str.indexOf("good",2));//7

7、substring(int startpoint)复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到的字符序列;substring(int start,int end)复制从start位置到end位置的字符序列

String str="abccc";

String s1 = str.substring(1); //返回一个新字符串bccc,内容为指定位置开始到字符串末尾的所有字符

String s2 = str.substring(2, 4);//返回一个新字符串,内容为指定位置开始到指定位置结束所有字符

在这里插入图片描述
8、trim()当前String对象的字符序列去掉前后空格的字符序列

 String str="  I am a good girl  ";
 System.out.println(str.trim());

在这里插入图片描述

三、字符串的并置

String对象可以用’+'进行并置运算,即首尾相接得到一个新的String对象。例如:

 String str="你";
 String str1="好";
 String s;
 s=str+str1;

在这里插入图片描述

四、字符串拆分与拼接(split AND append)


        //String str="nowcoder. a am I";
        
        String[] str1 =str.split(" ");//以空格拆分
        
        StringBuilder str2= new StringBuilder();//StringBuilder是一个字符拼接的工具类
        int j=0;
        for(int i=str1.length-1;i>=0;i--){
            str2.append(str1[i]+' ');
        }
        return str2.toString().trim();//toString()转换为字符串,trim()去掉两边的空格

五、字符串与基本数据的相互转化

1、Integer.parseInt(String s)将由“数字”字符组成的字符序列转化为int型数据

int x;
String str="888";
x=Integer.parseInt(str);

2、String.valueOf()将数值转化为String对象

 String str=String.valueOf(1234.567);

六、对象的字符串表示

1、toString()获得该对象的字符串表示

 String s="adsd";
 String str=s.toString();

七、字符串与字符数组与字节数组

1、toCharArray()将字符串转成一个字符数组

String str = "abccc";
char[] chs = str.toCharArray();

2、getChars(int start,int end,char c[],int offset)将当前String对象的一部分字复制到参数c指定的数组中,将字符序列中从start到end-1位置上的字符复制到c中,并从数组c的offset处开始存放这些字符

注意:必须保证数组c能容纳下要被复制的字符

 String s="我爱学习lalala";
 char[]a=new char[4];
 s.getChars(0,4,a,0);
 System.out.println(a);//我爱学习

3、String(byte[],int offset,int length)用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节,构造一个String对象

byte d[] = "abcdefgh".getBytes();
System.out.println(d.length);//8
String s=new String(d,6,2);
System.out.println(s);//gh
s=new String(d,0,6);
System.out.println(s);//abcdef

4、Integer.toBinaryString()将字符串转成一个二进制

String str=Integer.toBinaryString(n);//数字转换为二进制字符串

八、StringBuffe类的常用方法

1、append(String s)将String对象s的字符序列追加到当前StringBuffer对象的字符序列中,并返回当前StringBuffer对象的引用

  StringBuffer str=new StringBuffer();
  str.append("I am a good girl");
  System.out.println(str);//I am a good girl

2、StringBuffer append(int n)将int型数据n转化为String对象

StringBuffer str=new StringBuffer();
str.append("888");
System.out.println(str);//888

3、char charAt(int n)得到StringBuffer对象的字符序列位置n上的字符

 StringBuffer str=new StringBuffer("I am a good girl");
 System.out.println(str.charAt(3));//m

4、setCharAt(int n,char ch)将当前StringBuffer对象的字符序列位置n处的字符用参数ch指定的字符替换

 StringBuffer str=new StringBuffer("I am a good boy");
 str.setCharAt(0,'H');
 System.out.println(str);//H am a good boy

5、insert(int index,String str)将参数str指定的字符序列插入到参数index指定的位置并返回当前对象的引用

  StringBuffer str=new StringBuffer("I  a good girl");
  str.setCharAt(2,'a');
  str.setCharAt(3,'m');
  System.out.println(str);//I am good girl

6、reverse()将该对象实体中的字符序列翻转,并返回当前对象的引用

  StringBuffer str=new StringBuffer("Hello");
  System.out.println(str.reverse());//olleH

7、delete(int startIndex,int endIndex)删除一个子字符序列,从startIndex位置到endIndex-1位置处的字符序列被删除

  StringBuffer str=new StringBuffer("Habcello");
  str.delete(1,4);
  System.out.println(str);//Hello

8、replace(int startIndex,int endIndex,String str)将当前StringBuffer对象的字符序列的一个子字符序列用参数str指定的字符序列替换,从startIndex位置到endIndex-1位置处的字符序列被替换

  StringBuffer str=new StringBuffer("Hello");
  str.replace(1,5,"ahah");
  System.out.println(str);//Hahah

9.replace() 起到了一个字符串替换的作用(修改对象中的元素)

实现代码

String s = "We are happy."
 a = a.replace(" ","%20");
 System.out.println(a);

输出结果:
We%20are%20happy.
空格被替换成了%20

10.copyOfRange(original,int from,int to)该方法返回一个长度为to-from的数组,其中from~min(original.length,to)之间的元素(不包括min(original.length,to))是从数组original复制的元素,剩下的值为0。

        int[] str = new int[]{1, 2, 3, 4, 5, 6, 7};
        int[] str1 = Arrays.copyOfRange(str, 0, 4);
        for (int i = 0; i < str1.length; i++)
            System.out.print(str1[i]+" ");

Output

1 2 3 4

        String str="I am a girl";
        char[] str2=str.toCharArray();
        char[] str1 = Arrays.copyOfRange(str2, 0, 4);
        for (int i = 0; i < str1.length; i++)
            System.out.print(str1[i]);

Output

I am

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值