Java基础知识-常用API之String篇

API (Application Programming Interface) 

        java中指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

一、构造方法

在Java中,String 类的构造方法众多,但其中一些更为常用且基础。以下是几个重点构造方法及其举例:

1. String()

作用:创建一个空字符串。

举例

String s = new String();

System.out.println(s); // 输出空字符串,即什么都不输出

2. String(char[] value)

作用:根据字符数组的内容创建一个新的字符串。

举例

char[] chs = {'H', 'e', 'l', 'l', 'o'}; String s = new String(chs); System.out.println(s); // 输出: Hello

3. String(byte[] bytes)

作用:通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。

举例

byte[] bytes = {72, 101, 108, 108, 111}; // ASCII码对应的Hello String s = new String(bytes); System.out.println(s); // 输出: Hello

4. String(byte[] bytes, int offset, int length)

作用:通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。offset 是子数组起始处的索引,length 是子数组的长度。

举例

byte[] bytes = {71, 72, 101, 108, 108, 111, 33}; // ASCII码对应的GHello! String s = new String(bytes, 1, 5); // 从索引1开始,长度为5 System.out.println(s); // 输出: Hello
5. String(String original)

作用:创建一个新字符串,它是参数字符串的副本。

举例

String original = "World"; String s = new String(original); System.out.println(s); // 输出: World

这些构造方法是String类中最常用和基础的。它们允许从不同类型的源(如字符数组、字节数组、其他字符串等)创建字符串对象,提供了极大的灵活性。

二、成员方法

在Java中,String类是一个非常核心的类,用于处理字符串数据。它提供了大量的成员方法来支持字符串的各种操作。以下是一些常用的String类成员方法及其作用:

1. 获取字符串信息

  • length()
    • 作用:返回字符串的长度(即字符数)。
    • 示例:String str = "Hello"; int len = str.length(); // len 为 5
  • charAt(int index)
    • 作用:返回字符串中指定索引位置的字符。
    • 示例:char ch = str.charAt(1); // ch 为 'e'
  • substring(int beginIndex)
    • 作用:返回从指定索引位置开始到字符串末尾的子字符串。
    • 示例:String sub = str.substring(1); // sub 为 "ello"
  • substring(int beginIndex, int endIndex)
    • 作用:返回从指定开始索引位置到结束索引位置的子字符串(不包括结束索引处的字符)。
    • 示例:String sub = str.substring(1, 4); // sub 为 "ell"

2. 字符串比较

  • equals(Object obj)
    • 作用:比较字符串的内容是否相同,区分大小写。
    • 示例:boolean isEqual = str.equals("Hello"); // isEqual 为 true
  • equalsIgnoreCase(String anotherString)
    • 作用:比较字符串的内容是否相同,忽略大小写。
    • 示例:boolean isEqualIgnoreCase = str.equalsIgnoreCase("hello"); // isEqualIgnoreCase 为 true
  • compareTo(String anotherString)
    • 作用:按字典顺序比较两个字符串,返回一个整数表示比较结果。
    • 示例:int result = str.compareTo("hello"); // result 为 0 表示相等,负数表示当前字符串字典序小,正数表示当前字符串字典序大

3. 字符串转换

  • toLowerCase()
    • 作用:将字符串中的所有字符转换为小写。
    • 示例:String lowerStr = str.toLowerCase(); // lowerStr 为 "hello"
  • toUpperCase()
    • 作用:将字符串中的所有字符转换为大写。
    • 示例:String upperStr = str.toUpperCase(); // upperStr 为 "HELLO"
  • toCharArray()
    • 作用:将字符串转换为字符数组。
    • 示例:char[] charArray = str.toCharArray();

4. 字符串修改

  • concat(String str)
    • 作用:将指定字符串连接到此字符串的末尾。
    • 示例:String newStr = str.concat(" World"); // newStr 为 "Hello World"
  • replace(char oldChar, char newChar)
    • 作用:将字符串中的所有旧字符替换为新字符。
    • 示例:String replacedStr = str.replace('e', 'a'); // replacedStr 为 "Hallo"
  • replace(CharSequence target, CharSequence replacement)
    • 作用:替换字符串中所有匹配的子字符串。
    • 示例:String replacedStr = str.replace("ll", "xx"); // replacedStr 为 "Hexxo"

5. 字符串查找与判断

  • indexOf(String str)
    • 作用:返回指定子字符串在此字符串中第一次出现处的索引,如果未找到则返回-1。
    • 示例:int index = str.indexOf("e"); // index 为 1
  • lastIndexOf(String str)
    • 作用:返回指定子字符串在此字符串中最后一次出现处的索引,如果未找到则返回-1。
    • 示例:int lastIndex = str.lastIndexOf("l"); // lastIndex 为 3
  • startsWith(String prefix)
    • 作用:判断字符串是否以指定的前缀开始。
    • 示例:boolean startsWithH = str.startsWith("H"); // startsWithH 为 true
  • endsWith(String suffix)
    • 作用:判断字符串是否以指定的后缀结束。
    • 示例:boolean endsWithO = str.endsWith("o"); // endsWithO 为 true
  • contains(CharSequence s)
    • 作用:判断字符串是否包含指定的字符序列。
    • 示例:boolean containsEl = str.contains("el"); // containsEl 为 true

6. 去除空格

  • trim()
    • 作用:去除字符串开头和结尾的空格。
    • 示例:String trimmedStr = " Hello ".trim(); // trimmedStr 为 "Hello"

7. 分割字符串

  • split(String regex)
    • 作用:根据匹配给定的正则表达式来拆分字符串。
    • 示例:String[] parts = str.split(" "); // 假设 str 为 "Hello World",则 parts 为 ["Hello", "World"]

相关面试题:

1.回文判断

方法1

public static boolean huiwen(String str){
    int  left =0;
    int right =str.length()-1;
    while (left<right){
        if (str.charAt(left)!=str.charAt(right)){
            return false;
        }
        left ++;
        right --;
    }
    return true;
}

方法2

public class PalindromeChecker {

    public static boolean isPalindrome(String str) {
        // 去除字符串中的空格并转为小写
        str = str.replaceAll("\\s+", "").toLowerCase();

        // 使用StringBuilder反转字符串
        String reversedStr = new StringBuilder(str).reverse().toString();

        // 比较原始字符串和反转后的字符串
        return str.equals(reversedStr);
    }

    public static void main(String[] args) {
        String str = "A man a plan a canal Panama";
        System.out.println("Is \"" + str + "\" a palindrome? " + isPalindrome(str));
    }
}
 

2.求str2在str1中出现的次数

 public static int countOccurrences(String str1, String str2) {  
        int count = 0;  
        int index = 0;  
        while ((index = str1.indexOf(str2, index)) != -1) {  
            count++;  
            index += str2.length();  
        }  
        return count;  
    }  

3.求字符串中出现的字母并将大写转换为小写

    public static String extractAndToLowercaseLetters(String str) {  
        StringBuilder sb = new StringBuilder();  
        for (char c : str.toCharArray()) {  
            if (Character.isLetter(c)) {  
                sb.append(Character.toLowerCase(c));  
            }  
        }  
        return sb.toString();  
    } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值