java基础:java中的常用类——String类和StringBuffer类

String类和StringBuffer类

String类

String类本身就是java,lang包中的一个已定义类,我们要是使用字符串就可以使用这个类的方法来完成功能。

现在我们来看如实进行对象内容的初始化,我们可以直接赋值也可以使用String的构造方法。

public class Example001 {
    public static void main(String[] args) {
        String s1 = new String();
        String s2 = new String("123");
        char[] array ={'a','b','c'};
        String s3 = new String(array);

        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
    }
}

String常用方法:
1、int length();  语法:字符串变量名.length();  返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)

2、char charAt(值);  语法 :字符串名.charAt(值);  返回值为 char 类型。从字符串中取出指定位置的字符

3、char toCharArray();  语法 :字符串名.toCharArray();  返回值为 char 数组类型。将字符串变成一个字符数组

4、int indexOf(“字符”)  语法 :字符串名.indexOf(“字符”);字符串名.indexOf(“字符”,值);查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。

5、toUpperCase(); toLowerCase();字符串大小写的转换。

6、String[] split(“字符”)  根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。

7、boolean equals(Object anObject)  语法 :字符串变量名.wquals(字符串变量名);  返回值为布尔类型。所以这里用 if 演示。比较两个字符串是否相等,返回布尔值。

8、trim();  去掉字符串左右空格  replace(char oldChar,char newChar);新字符替换旧字符,也可以达到去空格的效果一种。

9、String substring(int beginIndex,int endIndex)  截取字符串 。

10、boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值。
 
11、boolean contains(String) 判断一个字符串里面是否包含指定的内容,返回一个布尔值。
 
12、boolean startsWith(String)  测试此字符串是否以指定的前缀开始。返回一个布尔值。

13、boolean endsWith(String)  测试此字符串是否以指定的后缀结束。返回一个布尔值。

14、上面提到了replace方法,接下继续补充一下 String replaceAll(String,String) 将某个内容全部替换成指定内容,   String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容。

字符串基本操作

public class Example001 {
    public static void main(String[] args) {
        String s = "abcabccabdcbab";
        System.out.println("字符串长度是"+s.length());
        System.out.println("字符串的第二个字母是"+s.charAt(1));
        System.out.println("字符c第一次出现在"+s.indexOf('c'));
        System.out.println("字符c最后一次出现在"+s.lastIndexOf('c'));
        System.out.println("此字符串第一次出现的位置"+s.indexOf("ab"));
        System.out.println("此字符串最后一次出现在"+s.lastIndexOf("ab"));
    }
}

字符串转换操作

public class Example002 {
    public static void main(String[] args) {
        String s = "java";
        char[] Array = s.toCharArray();
        System.out.print("将字符串转换成字符数组的结果:");
    for(int i=0;i<Array.length;i++){
      if(i<Array.length-1){
          System.out.print(Array[i]+",");
      }else {
          System.out.println(Array[i]);
      }
    }
        System.out.println("将int值转换成String类型之后的结果:"+String.valueOf(14));
        System.out.println("将字符串转换成大写以后的结果:"+s.toUpperCase());

    }
}


字符串的替换和去空格操作

public class Example003 {
    public static void main(String[] args) {
        String s = "   http  ://localhost  :8080   ";
        System.out.println("去除字符串两端的空格"+s.trim());
        System.out.println("去除字符串中的空格"+s.replace(" ",""));

    }
}

字符串的判断操作

public class Example003 {
    public static void main(String[] args) {
        String s1 = "Starter";
        String s2 = "end";
        System.out.println("是否以St开头"+s1.startsWith("St"));
        System.out.println("是否以er结尾"+s1.endsWith("er"));
        System.out.println("是否包含ar"+s1.contains("ar"));
        System.out.println("是否是空字符"+s1.isEmpty());
        System.out.println("是否是两字符串相等"+s1.equals(s2));

    }
}

在java中对于两个字符串而言,equal()为真是指两个字符值相等,而==的相等时指两个的内存地址相等。

字符串的截取和分割

public class Example003 {
    public static void main(String[] args) {
    String s ="2018-01-26";
        System.out.println("从第六个字符截取到结尾"+s.substring(5));
        System.out.println("从第六个字符到第七个"+s.substring(5,6));
        System.out.print("分割的部分分别是:");
    String[] array = s.split("-");
    for(int i=0;i<array.length;i++){
        if(i<array.length-1){
            System.out.print(array[i]+",");
        }else{
            System.out.println(array[i]);
        }
    }

    }
}
StringBuffer类

因为String的类型是final的类型,所以一旦对象的值被确定也就不可更改了。而StringBuffer类则是一个字符串容器,也就可以改动内容和长度。

1、StringBuffer的构造方法:
StringBuffer() :
无参构造的形式,初始容量16

2、StringBuffer(int capacity) :
指定容量构造一个字符串缓冲区

3、StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容

4、StringBuffer的获取功能:
public int length()
返回长度

public int capacity()
返回当前容量 (如果超过容量,系统自动分配(存储字符串的时候,英文的))

5、StringBuffer的添加功能
(实际开发中用的多):public StringBuffer append(String/boolean…) :
在字符串缓冲区中追加数据(在末尾追加),并且返回字符串缓冲区本身

public StringBuffer insert(int offset,String str):
将当前str字符串添加到指定位置处,它返回字符串缓冲区本身

6、StringBuffer的删除功能:
public StringBuffer deleteCharAt(int index):
移除指定位置处的字符…

public StringBuffer delete(int start,int end):
移除从指定位置处到end-1处的子字符串…

7、StringBuffer的反转功能:
public StringBuffer reverse() :
将缓冲区中的字符序列反转取代,返回它(字符串冲)本身

8、StringBuffer的截取功能:
public String substring(int start):
从指定位置开始截取,默认截取到末尾,返回值不在是缓冲区本身,而是一个新的字符串

public String substring(int start,int end) :
从指定位置开始到指定位置结束截取,包前不包后,返回值不在是缓冲区本身,而是一个新的字符串

9、StringBuffer的替换功能:
public StringBuffer replace(int start,int end,String str)
从指定位置到指定位置结束,用新的str字符串去替换,返回值是字符串缓冲区本身

public class Example004 {
    public static void main(String[] args) {
        System.out.println("1.添加---------");
        add();
        System.out.println("2.修改---------");
        update();
        System.out.println("3.删除----------");
        delete();

    }
    public static void add(){
        StringBuffer s = new StringBuffer();
        s.append("ABC");
        System.out.println("添加结果"+s);
        s.insert(3,"de");
        System.out.println("添加结果"+s);

    }
    public static void update(){
        StringBuffer s = new StringBuffer("ABAAA");
    s.setCharAt(2,'C');
        System.out.println("修改结果"+s);
        s.replace(3,5,"de");
        System.out.println("替换结果"+s);
        System.out.println("翻转结果"+s.reverse());

    }

   public static void delete(){
        StringBuffer s = new StringBuffer("ABCDEFG");
        s.delete(3,7);
       System.out.println("删除结果"+s);
       s.deleteCharAt(2);
       System.out.println("删除结果"+s);
       s.delete(0,s.length());
       System.out.println("清除缓冲区"+s);

   }
}

要注意的是StringBuffer类中的equal()方法是没有改写的,所以是指“==”。

还有,因为是一个容器,所以容器与容器的内容是不可以简单用“+”来连接的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值