2024暑假第六周总结

Java 字符串

Java中的String类是处理字符数据的基础类

创建字符串

字面量创建:

String str1 = "Hello, World!";

这是最常用的方式,str1会指向常量池中的字符串。

通过new关键字创建:

String str2 = new String("Hello, World!");

这会创建一个新的String对象,即使内容相同,也与常量池中的字符串不同。

字符串不可变性

不可变性说明:

String对象一旦创建,其内容不能被改变。任何对字符串的修改操作都会返回一个新的字符串对象,而不会改变原有字符串。

String original = "Java";
String modified = original.concat(" Programming"); // 原字符串未改变
System.out.println(original);  // 输出: Java
System.out.println(modified);  // 输出: Java Programming

常用方法

长度:

String str = "Hello";
int length = str.length();  // 5

获取字符:

char ch = str.charAt(1);  // e

子字符串:

String substr = str.substring(1, 4);  // ell

查找位置:

int index = str.indexOf("l");  // 2
int lastIndex = str.lastIndexOf("l");  // 3

转换大小写:

String upper = str.toUpperCase();  // HELLO
String lower = str.toLowerCase();  // hello

去除空白:

String padded = "  Hello  ";
String trimmed = padded.trim();  // "Hello"

替换字符:

  String replaced = str.replace('l', 'L');  // HeLLo

分割字符串:

String sentence = "Java,Python,C++";
String[] languages = sentence.split(",");  // ["Java", "Python", "C++"]

字符串连接:

String first = "Hello";
String second = "World";
String combined = first + " " + second;  // Hello World

检查字符串:

boolean startsWith = str.startsWith("Hel");  // true
boolean endsWith = str.endsWith("lo");  // true
boolean contains = str.contains("ell");  // true

字符串比较

内容比较:

String str1 = "Java";
String str2 = "Java";
boolean isEqual = str1.equals(str2);  // true

忽略大小写比较:

String str1 = "java";
String str2 = "Java";
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2);  // true

比较顺序:

String str1 = "Apple";
String str2 = "Banana";
int comparison = str1.compareTo(str2);  // < 0, 因为 "Apple" 小于 "Banana"

转换为其他数据类型

字符串转整数:

String numberStr = "123";
int number = Integer.parseInt(numberStr);  // 123

字符串转浮点数:

String floatStr = "123.45";
float floatValue = Float.parseFloat(floatStr);  // 123.45

其他数据类型转字符串:

int num = 100;
String numStr = String.valueOf(num);  // "100"

字符串Builder和Buffer

StringBuilder:

用于在字符串上执行可变操作,效率更高。
常用方法:
append()
insert()
delete()
reverse()
示例代码:

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
sb.reverse();

StringBuffer:

功能与StringBuilder类似,但线程安全。
示例代码:

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
sb.reverse();

实用示例

示例 1:字符串操作

public class StringExample {
    public static void main(String[] args) {
        String original = "   Java Programming   ";
        
        // 去除前后空白
        String trimmed = original.trim();
        System.out.println("Trimmed: '" + trimmed + "'");
        
        // 转换为大写
        String upperCase = trimmed.toUpperCase();
        System.out.println("Uppercase: '" + upperCase + "'");
        
        // 替换字符
        String replaced = upperCase.replace("JAVA", "C++");
        System.out.println("Replaced: '" + replaced + "'");
    }
}

示例 2:字符串比较

public class StringComparison {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "Hello";
        String str3 = "hello";
        
        // 比较
        System.out.println(str1.equals(str2));
        System.out.println(str1.equalsIgnoreCase(str3));
        System.out.println(str1.compareTo(str3));
    }
}

ArrayList

ArrayList是Java中用于存储动态数组的类。

基本操作:

创建:

 ArrayList<String> list = new ArrayList<>();

添加元素:

list.add("Apple");
list.add("Banana");

访问元素:

 String fruit = list.get(0); // "Apple"

删除元素:

list.remove("Banana"); // 删除元素"Banana"

更新元素:

list.set(0, "Orange"); // 将索引0的元素更新为"Orange"

性能特点:

动态数组: ArrayList内部使用数组来存储元素,数组大小会根据需要自动扩展。
访问时间: 访问元素的时间复杂度为O(1),因为通过索引直接访问。
插入和删除时间: 插入和删除操作在中间位置的时间复杂度为O(n),因为可能需要移动元素。

常见用法:

遍历:

for (String fruit : list) {
    System.out.println(fruit);
}

使用forEach:

list.forEach(System.out::println);

总结

本周学习了字符串和ArryList的相关知识点,并进行了一定的练习。
本周对于面向对象进阶知识还没有进行学习,下周好好利用时间进行系统性的学习。

posted @ 2024-08-10 13:32  haoyinuo  阅读(8)  评论(0编辑  收藏  举报