JSE : 字符串

字符串

Java9之前字符串采用char[]数组保存字符,即每个字符占2个字节

Java9之后采用byte[]数组 + encoding-flag保存字符,即每个字符只占1个字节

String类

public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc
  • java.lang.String

  • 不可变类 , 即String对象创建后 它的字符序列是不可变的

构造

  • String()

    创建一个包含0个字符串序列的String对象 (并不是null)

  • String(char[] value)

  • String(char[] value, int offset, int count)

  • String(String original)

  • String(StringBuffer buffer)

  • String(StringBuilder builder)

String str = "abc";
//is equivalent to:
char data[] = {'a', 'b', 'c'};
tring str = new String(data);

非静态方法

长度类
length()
public int length();
isEmpty()
  • Returns true if, and only if, length() is 0
public boolean isEmpty()
与char转换
charAt
  • 获取字符串指定位置的字符
char charAt(int idx);
toCharArray
public char[] toCharArray();
字符串比较
compareTo
  • 对字符串内容按字典顺序进行大小比较

    • 如果字符序列相等, 返回0

    • 如果 字符序列不等 ,则返回 第一个不等的字符差

      this.charAt(k)-anotherString.charAt(k)
      
    • 特殊地,如果短字符串 与 长字符串的前面部分完全一样,则返回长度差

      this.length()-anotherString.length()
      
int compareTo(String anotherString);
compareToIgnoreCase
  • 同上, 但是忽略大小写差异
equals
  • String类的equals()方法 内部重写了 ,比较的是内容 而不是地址
  • equals只返回 true or false. compareTo 返回的是 int 型
public boolean equals (Object anObject)
equalsIgnoreCase
  • 同上,忽略大小写差异
子串
contains
  • 判断是否被包含
contains(String str);
substring
  • 提取子串
public String substring(int beginIndex);
public String substring(int beginIndex, int endIndex); /* beginIndex  到 endIndex-1 */
字符串连接
concat
  • 将参数中的字符串str连接到当前字符串的后面,效果等价于"+"
public String concat(String str);
大小写转换
toLowerCase
public String toLowerCase();
toUpperCase
public String toUpperCase();
字符/子串查找
indexOf
  • 返回字符或子串在当前字符串中从左边起首次出现的位置,若没有出现则返回-1
public int indexOf(int ch/String str);
public int indexOf(int ch/String str, int fromIndex);
lastIndexOf
public int lastIndexOf(int ch/String str);
public int lastIndexOf(int ch/String str, int fromIndex);
字符/字符串的替换
replace
  • 替换所有的oldChar字符,并返回一个 新的 字符串
public String replace(char oldChar, char newChar)
replaceFirst/replaceAll
  • 字符串的替换 第一个/全部
public String replaceFirst(String regex, String replacement);
public String replaceAll(String regex, String replacement);
分解字符串
split
public String[] split(String regex)
其他
getChars
  • 将字符串 从 srcBegin开始 到srcEnd结束 复制到dst字符数组中,起始复制位置为dstBegin
  • the last character to be copied is at index srcEnd-1
public void getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin);
statWith/endWith
  • 判断 起始/终止 字符串 是否相同
boolean statWith(String prefix);
boolean endWith(String suffix);

静态方法

与基本类型的转换
  • 基本类型转换为 字符串类型

    static String valueOf(char data[])
    static String valueOf(char data[], int offset, int count)
    static String valueOf(boolean b)
    static String valueOf(char c)
    static String valueOf(int i)
    static String valueOf(long l)
    static String valueOf(float f)
    static String valueOf(double d)
    
  • 字符串类型转换为 基本类型 : 包装类的方法

    public static byte parseByte(String s)
    public static short parseShort(String s)
    public static short parseInt(String s)
    public static long parseLong(String s)
    public static float parseFloat(String s)
    public static double parseDouble(String s)
        
    EG:
    double a = Double.parseDouble("1.2");    
    

StringBuilder类

构造

//默认容量=16
StringBuilder()	
//指定容量
StringBuilder (int capacity)	

StringBuilder (CharSequence seq)	
StringBuilder (String str)	

//eg:
StringBuilder strB = new StringBuilder();

方法

插入/删除 字符/字符串
append
StringBuilder append (type a)
insert
StringBuilder insert (int offset, boolean b)
delete
  • end - The ending index, exclusive.
StringBuilder delete (int start, int end)
StringBuilder deleteCharAt (int index)
反转字符串
reverse
StringBuilder reverse()
转换为String

StringBuffer类

  • 线程安全的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值