TOC
KINA

KINA-0

Start having fun with KINA right now!

Java数据结构(1):字符串类

Java字符串处理类:String、StringBuffer、StringBuilder

1 String

String类内容不可改变。

初始化:

String str1 = "Hello World";
String str2 = str1;
String str3 = str1 + " Akira!";
String str4 = "Welcome to " + 2025;
String str5 = String.format("Welcome to %d", 2025);   // 格式化字符串,参考printf()
String moneyStr = "123.45";
double money = Double.parseDouble(moneyStr);    // 使用Xxx.parseXxx()解析字符串

常用API:

  • int length():返回长度
  • char charAt(int index):获取指定位置字符
  • int indexOf(char c):查找第一个匹配的字符,失败则返回-1
  • int indexOf(String str):查找第一个匹配的字符串,返回首位的位置,失败则返回-1
  • boolean equals(Object o):判断是否相等
  • int compareTo(String str):比较两个字符串的字典序、长度,大、小、相等分别返回1-10
  • boolean startsWith(String str):判断是否以某字符串开头
  • boolean endsWith(String str):判断是否以某字符串结尾
  • String trim():去掉首尾的空白字符(空格与\n等)
  • String toLowerCase():全部转为小写字符
  • String toUpperCase():全部转为大写字符
  • String replace(char oldChar, char newChar):替换字符
  • String replace(String oldRegex, String newRegex):替换字符串,可以长度不同或为空。
  • String substring(int beginIndex, int endIndex):返回[beginIndex, endIndex)上的子串
  • String substring(int beginIndex):返回指定起始索引的子串
  • toCharArray():将字符串转化为字符数组,使得可以for-each遍历
for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    System.out.println(c);
}

for (char c : str.toCharArray()) {
    System.out.println(c);
}

2 StringBuffer / StringBuilder

当需要对字符串进行频繁修改时,要用StringBuffer或StringBuilder类。这两个类的对象能够被多次修改,且不产生新的未使用对象,效率都比String高且节省内存。需要转回String时使用默认的toString()方法即可。

  • StringBuffer:多线程数据量多使用。线程安全,同步,效率低。
  • StringBuider:单线程数据量较多使用。线程不安全,不同步,效率高。(算法题中更常用)

初始化:

String str = "Hello";
StringBuilder sb = new StringBuilder(str);

常用API:

  • length()charAt()indexOf()substring()同String
  • void setCharAt(int index, char newChar):替换指定位置的字符为指定字符
  • void append(String str):拼接字符串
  • void reverse():翻转字符串
sb.append(" World!");

for (int i = 0; i < sb.length(); i++) {
    sb.setCharAt(i, (char)(sb.charAt(i) + 1));
}

sb.reverse();

3 字符串输入读取

详见:Java常用基础类总结——标准输入读取类

《Java数据结构(1):字符串类》有1条评论

  1. 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf啊啊啊啊assagdgarofaweonf

    回复

发表评论