java String类

1     String类的概述

//演示字符串

String str  = "oracle";

str = "甲骨文";

字符串是常量;它们的值在创建之后不能更改

字符串的本质是一个字符的数组。

public static void main(String[] args) {
    /*String str="abc";
    str="bcd";
    System.out.println(str);*/
    String s1="abc";
    String s2="abc";
    System.out.println(s1==s2);//常量池,字母组合一样地址一样
    System.out.println(s1.equals(s2));//比内容
}

 

 

String s3 = "abc";
String s4 = new String("abc");
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true,
//因为String重写了equals方法,建立了字符串自己的判断相同的依据(通过字符串对象中的字符来判断)

s3和s4的创建方式有什么不同呢?

l  s3创建,在内存中只有一个对象。这个对象在字符串常量池中

l  s4创建,在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中

2      String类构造方法

 

 

String s1 = new String(); //创建String对象,字符串中没有内容
    
    byte[] bys = new byte[]{97,98,99,100};
    String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容
    String s3 = new String(bys, 1, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数length为要几个元素
    
    char[] chs = new char[]{’a’,’b’,’c’,’d’,’e’};
    String s4 = new String(chs); //创建String对象,把数组元素作为字符串的内容
    String s5 = new String(chs, 0, 3);//创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数count为要几个元素

    String s6 = new String(“abc”); //创建String对象,字符串内容为abc
public static void main(String[] args) {
    byte bytes[]={66,67,68,69};
    String str1=new String(bytes);
    System.out.println(str1);//当字节是0-127走ASCII码表
    byte[] bytes2={-66,-67,-68,-69};//当字节是负数时,走中文码表,一个汉字俩字节
    String str2=new String(bytes2);
    System.out.println(str2);
    
    String str3=new String(bytes2,1,2);//转-67和-68
    System.out.println(str3);
    
    char[] ch={'小','a','6'};
    String str4=new String(ch);
    System.out.println(str4);
    
    String str5=new String(ch,0,2);
    System.out.println(str5);
    
}

3     String类的方法查找

 

 常用

public static void main(String[] args) {
    String str="I Love Java,java Love me";
    System.out.println(str.length());
    //截字符串
    System.out.println(str.substring(11));//,java Love me包头不包尾
    System.out.println(str.substring(2,5));//Lov
    
    System.out.println(str.startsWith("A"));//判断是否以a开头
    System.out.println(str.endsWith("me"));//判断是否以me结尾
    
    //判断大字符串中是否包含小字符串
    System.out.println(str.contains("java"));//判断字符串中是否包含java字符串
    //获取小字符串在大字符串中第一次出现的位置
    System.out.println(str.indexOf("Love"));//下边为2的位置第一次出现
    //字符串转数组
    byte[] bytes=str.getBytes();
    for(int i=0;i<bytes.length;i++){System.out.println(bytes[i]);}
    //字符串转字符
    char[] ch=str.toCharArray();
    for(int i=0;i<ch.length;i++){System.out.println(ch[i]);}
    //判断俩字符串内容是否相同
    System.out.println("Hello".equals("hello"));//比内容区分大小写
    System.out.println("Hello".equalsIgnoreCase("hello"));//不区分大小写
}
public static void main(String[] args) {
    String str="I Love Java,java Love me";
    //    判断该字符串的内容是否为空的字符串
    System.out.println(str.isEmpty());
    //    获取给定的字符,在该字符串中第一次出现的位置
    System.out.println(str.indexOf("Love"));
    //    获取该字符串中指定位置上的字符
    System.out.println(str.charAt(2));
    //    把该字符串转换成 小写字符串
    System.out.println(str.toLowerCase());
    //    把该字符串转换成 大写字符串
    System.out.println(str.toUpperCase());
    //    在该字符串中,将给定的旧字符,用新字符替换
    System.out.println(str.replace("Love", "喜欢"));
    //    在该字符串中, 将给定的旧字符串,用新字符串替换
    System.out.println(str.replace("Love", "xihuan"));
    //    去除字符串两端空格,中间的不会去除,返回一个新字符串
    String str1=" I Love Java,java Love me";
    System.out.println(str1.trim());
}

      String类方法使用练习

1.获取指定字符串中,大写字母、小写字母、数字的个数。

public static void main(String[] args) {
    //将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。
    String arr="i Love you";
    String shou=arr.substring(0,1).toUpperCase();
    String hou=arr.substring(1).toLowerCase();
    System.out.println(shou+hou);
}

2.将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。

public static void main(String[] args) {
    /*查询大字符串中,出现指定小字符串的次数。
    如“hellojava,nihaojava,
    javazhenbang”中查询出现“java”的次数。*/
    String aa="hellojava,nihaojava,javazhenbang";
    //aa.indexOf("java");//aa第一次出现java的下标
    int count=0;
    int index=-1;
    while((index=aa.indexOf("java"))!=-1){
        count++;
        aa=aa.substring(index+1);//截取字符串
    }
    
    System.out.println(count);
}

3.查询大字符串中,出现指定小字符串的次数。如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。

public static void main(String[] args) {
    /*查询大字符串中,出现指定小字符串的次数。
    如“hellojava,nihaojava,
    javazhenbang”中查询出现“java”的次数。*/
    String aa="hellojava,nihaojava,javazhenbang";
    //aa.indexOf("java");//aa第一次出现java的下标
    int count=0;
    int index=-1;
    while((index=aa.indexOf("java"))!=-1){
        count++;
        aa=aa.substring(index+1);//截取字符串
    }
    
    System.out.println(count);
}

 

posted @ 2020-07-10 17:42  wangmeihao  阅读(106)  评论(0编辑  收藏  举报