java基础-常用API

  1. String常用方法

String简介

public final class String 
extends Object
implements Serializable, Comparable<String>, CharSequence

String是一个特殊的引用数据类型 一般情况下 引用数据类型需要new关键字进行创建对象 String可以直接进行赋值
String str = “会飞的鲁班”;

String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
String str = “abc”;
等同于
char data[] = {‘a’, ‘b’, ‘c’};
String str = new String(data);

String字符串内容一旦给定不能修改值

public class String Demo1{
public static void main(String[] args) {
  String str = "hello";
  str+="world";
  str+="!!!";
  System.out.println(str);
 }
}

在这里插入图片描述

String两种赋值的区别:

在这里插入图片描述
之所以内容会相等,是因为在 JAVA 底层中存在了一个字符串的对象池,每次的内容都会从池中取出,如果内容已经 存在了,则使用已经存在的,如果不存在,则会生成一个新的,放入池中,属于共享设计模式。 由于这种原因,只要是使用 String类的话,永远都要采用直接赋值的方式完成。

String的equals()方法

NOmethodtypedesc
1public boolean equals(Object anObject)boolean判断两个字符串内容是否相等

package demo;
public class StringDemo04 {
     public static void main(String args[]){
             String str1 = "hello" ;
             String str2 = new String("hello") ; 
             String str3 = str2 ;
             System.out.println("str1 == str2 --> " + (str1==str2)) ; // false
             System.out.println("str1 == str3 --> " + (str1==str3)) ; // false
             System.out.println("str2 == str3 --> " + (str2==str3)) ; // true         
             };     
             }

两种比较的区别:==和 equals() · ==:用于数值比较(比较的是值)用于对象,比较的是两个对象的地址值 · equals():用于内容的比较,比较两个字符串(对象)的内容是否相等

String的其它比较方法

methoddesc
public boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写
public int compareTo(String anotherString)比较字符串ASCII的大小
public boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始
public boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束

案例:

package com.scy.stringdemo;
/**
 * 
 * @author gqk
 *
 */
public class StringDemo2 {
 public static void main(String[] args) {
  String str = "www.gqk.com";
  boolean flag1 = str.startsWith("cn");//false
  boolean flag2 = str.endsWith("com");//true
  System.out.println(flag1);
  System.out.println(flag2);
 }
}

String 搜索方法

methoddesc
public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。如果未出现该字符,则返回 -1。
public int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。如果它不作为一个子字符串出现,则返回 -1
public int lastIndexOf(int ch)返回指定字符的最后一次出现的字符串中的索引 如果没有k的值存在,则返回-1
public int lastIndexOf(String str)返回指定子字符串最后一次出现的字符串中的索引 如果没有k的值存在,则返回-1
public static void main(String[] args) {
  String str = "ILOVE gqk";
  /**
   * public int indexOf(int ch) {
         return indexOf(ch, 0);
      }
   */
  int index = str.indexOf('g');
  System.out.println(index);//6
 }

String大小写的转换

方法原型说明
public String toLowerCase()将字符串转换为小写的
public String toUpperCase()将字符串转为大写

案例:模拟忽略验证码大小写

package com.scy.demo;
import java.util.Scanner;
public class StringDemo2 {
    public static void main(String[] args) {
        String code = "abCDeF";
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入验证码:");
        String codes = scanner.next();
        if(code.toUpperCase().equals(codes.toUpperCase()) ||
        code.toLowerCase().equals(codes.toLowerCase())){
            System.out.println("验证码相等");
        }else{
            System.out.println("验证码不相等");
        }
    }
}

String和数组之间的转换

方法原型解释说明
public byte[] getBytes()将字符串转换为byte数组
public char[] toCharArray()将字符串转换为字符数组

案例:

package com.scy.demo;
public class StringDemo3 {
    public static void main(String[] args) {
        String str = "HelloWorld";
        byte[] bytes = str.getBytes();
        char[] chars = str.toCharArray();
        System.out.println(bytes.length);//10
        System.out.println(chars.length);//10
    }
}

字符串的截取

方法原型解释说明
public String substring(int beginIndex)返回一个字符串,该字符串是此字符串的子字符串。 子字符串以指定索引处的字符开头,并扩展到该字符串的末尾。
public String substring(int beginIndex, int endIndex)从beginIndex开始截取,截取到endIndex个

案例:截取图片的后缀

package com.scy.demo;
public class StringDemo4 {
    public static void main(String[] args) {
        String strs = "asdadsdas-qweqwe-sad-sad-xzcasd110.jpg";//截取图片的后缀
        String str = "HelloWorld";
        String s = str.substring(5);//从低5个开始截取(不留第5个)
        System.out.println(s);//World
        int len = strs.lastIndexOf(".");
        System.out.println(len);//34
        String img =  strs.substring(len);
        System.out.println(img);
    }
})

字符串的替换(经常用于和谐字段)

方法原型方法描述
public String replace(char oldChar,char newChar)newChar将oldChar全部替换
public String replaceAll(String regex,String replacement)根据正则表达式替换,替换的是后面的参数
public class StringDemo5 {
    public static void main(String[] args) {
        String str = "你吗好吗?";
        str = str.replace('吗','*');
        System.out.println(str);
    }
}

StringBuffer和StringBulider(面试题)

String类一旦内容给定是不能进行修改的,但是在我们实际开发中 不修改字符串是不可能的 所以 提供了以下的俩个类 专门用来操作字符串的更改

StringBuffer

结构
由final修饰的类 说明此类不能被继承的,默认继承了Object类
线程安全(线程同步),可变的字符序列。 字符串缓冲区就像一个String ,但可以修改

public final class StringBuffer
extends Object
implements Serializable, CharSequence

构造方法

方法描述
public StringBuffer()构造一个没有字符的字符串缓冲区,初始容量为16个字符。
public StringBuffer(String str)构造一个初始化为指定字符串内容的字符串缓冲区。 字符串缓冲区的初始容量为16加上字符串参数的长度。

案例:

package com.scy.demo;
/**
 * 初始容量是16 但是容量一定不是长度
 */
public class StringBufferDemo1 {
    public static void main(String[] args) {
        StringBuffer buffer1 = new StringBuffer();
        StringBuffer buffer2 = new StringBuffer("HelloWorld");
        System.out.println(buffer1.length());
        System.out.println(buffer2.length());
    }
}

常用方法

方法名称方法描述
public StringBuffer append(String str)将指定的字符串附加到此字符序列
public StringBuffer insert(int offset, X x)将x插入到指定的字符序列之中,X为任意类型。
public int length()返回长度(字符数)。
public StringBuffer reverse()导致该字符序列被序列的相反代替

案例:

package com.scy.demo;

public class StringBufferDemo2 {
    public static void main(String[] args) {
        StringBuffer strBuf = new StringBuffer("Java");
        strBuf.append(" tedu gqk/");  //连接
        System.out.println(strBuf);
        strBuf.append(3);
        System.out.println(strBuf);//java tedu gqk/3
        strBuf.insert(5, "Student");    //插入
        System.out.println(strBuf);
        strBuf.setCharAt(20, '.');      //替换字符
        System.out.println(strBuf);
        strBuf.reverse();               //倒序
        System.out.println(strBuf);
        String str = strBuf.toString();
        System.out.println(str);
    }
}

在这里插入图片描述

StringBuilder

和StringBuffer用法类似但是不保证 线程安全(同步)线程异步的(线程不安全的)
面试题:
String,StringBuffer和StringBulider的区别:
在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值