首页 > 其他分享 >2024暑假第六周总结

2024暑假第六周总结

时间:2024-08-10 13:27:03浏览次数:7  
标签:第六周 Java String str1 2024 str 暑假 字符串 Hello

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的相关知识点,并进行了一定的练习。
本周对于面向对象进阶知识还没有进行学习,下周好好利用时间进行系统性的学习。

标签:第六周,Java,String,str1,2024,str,暑假,字符串,Hello
From: https://www.cnblogs.com/haoyinuo/p/18352208

相关文章

  • 2024牛客多校1
    H签到题,对于每场比赛排名在lzr010506前面且同时在两场比赛出现的的队伍,让他们全部去另一场,看看哪种情况lzr010506的排名更高即可。#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;constintmaxn=1e5+3;structteam{stringname;in......
  • 2024/08/10 每日一题
    LeetCode2940找到Alice和Bob可以相遇的建筑方法1:线段树classSolution{staticint[]tree;//存储区间的最大值staticvoidbuild(into,intleft,intright,int[]datas){if(left==right){tree[o]=datas[left-1];......
  • 第六周学习报告
    又经过了一周的学习,今天对本周学习进行总结本周学习了Java面向对象进阶内容抽象类和抽象方法抽象类使用abstract关键字声明的类被称为抽象类。抽象类不能被实例化。抽象方法使用abstract关键字声明的方法被称为抽象方法。抽象方法没有方法体,即大括号{}内没有代码实现。抽象......
  • 大一暑假学习记录6
    这一周我基本完成了刘立嘉老师布置的暑假作业,其中通讯录的录入与显示,整数分解为若干项之和是我认为最难做的题目,前者的难点是sample有查询越界、最大N,反复查询同一记录等等。后者则是样例等价,多行输出难以解决。于是我又重新学习了结构体部分的内容,定义了Contact结构体来存储......
  • 塔子哥的美食节-阿里淘天2024笔试(codefun2000)
    题目链接塔子哥的美食节-阿里淘天2024笔试(codefun2000)题目内容塔子哥是一位美食评论家,他最近参加了一个美食节,品尝了n种不同的美食,每种美食都有一个特定的人气值。现在,塔子哥想写一篇关于这次美食节的文章,他打算挑选出k种美食,使得文章中能够突出一种特别受欢迎的......
  • 2024牛客暑期多校训练营2
    A.FloorTiles恶心构造,本来构造的方法没有错,因为不小心修改了第一块砖的位置,导致一直过不去,没注意,倒了思路:先把最多曲线的构造出来,就是类似于BAB......
  • 2024,该放弃框架来实现 Web 布局了
    在这里,我并不想评论CSS框架和库的好坏,但一个不争的现实就是,很多Web开发者很容易在众多的CSS框架库中迷失方向。甚至,每个框架和库都向Web开发者承诺,将提供更简单的样式和更流畅的Web布局。然而,在当下,现代CSS特性提供了更简单和更灵活的方法,你完全可以不依赖任何CSS......
  • 【ACM出版,见刊检索快速稳定】第四届物联网与机器学习国际学术会议(IoTML 2024,8月23-25)
    2024年第四届物联网与机器学习国际学术会议(IoTML2024)将于2024年8月23-25日在中国南昌召开。会议将围绕着物联网和机器学习开展,探讨本领域发展所面临的关键性挑战问题和研究方向,以期推动该领域理论、技术在高校和企业的发展和应用,为专注于该研究领域的创新学者、工程师和......
  • 2024年网络信息安全工程师面试题,看看你能做几个?
    一、网络安全网络安全的概念和重要性是什么?常见的网络攻击方式有哪些?网络安全防御措施有什么?计算机病毒和恶意软件有哪些?网络安全法律法规有什么?二、网络协议什么是TCP/IP协议?它包括哪些层次?请简要介绍每个层次的作用。什么是HTTP协议?请简要介绍HTTP协议的......
  • 学习Java第六周
    本周学习——面向对象(下)一、包装类Integer——intLong——longShort——shortByte——byteFloat——floatDouble——doubleCharacter——charBoolean——boolean二、处理对象1.和equals方法Java程序测试两个变量是否相等有两种方式:一种是利用运算符;另一种是利用equals......