java学习笔记day1

java学习心得

字符串输入区别

   // 创建Scanner对象,用于读取标准输入(System.in)
        Scanner scanner = new Scanner(System.in);

读取包括空格 nextline,读取一整行

 // 使用nextLine()方法读取一行字符串,包括空格
        String inputString = scanner.nextLine();

遇到空格就会结束

// 使用next()方法读取一个单词
String word = scanner.next();

字符串

在字符串中跟c++还是有区别的,首先c++的字符串是数组,不能像访问数组的下标显示而是通过charAt

  1. 所以访问字符串的位置就用charAt

  2. 字符串转换为字符数组 toCharArray

[字符串是不能变动的所以就要转换为字符数组​]  

3.字符串转换为大小写

  • 转换为大写:使用 toUpperCase() 方法。

  • 转换为小写:使用 toLowerCase() 方法。

 String original = "AncdAfAf";
​
        // 转换为大写
        String upperCase = original.toUpperCase();
        System.out.println("大写: " + upperCase);
​
        // 转换为小写
        String lowerCase = original.toLowerCase();
        System.out.println("小写: " + lowerCase);

4.字符串的替换和去除空格操作

replace() 方法

   String str = "Hello   World";
   String noSpaces = str.replace(' ', '_');
   System.out.println(noSpaces); // 输出 "Hello___World"
   

5:字符串的判断操作

equals(Object anObject)判断当前字符串是否与另一个对象相等,这里的相等是指内容完全相同。

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

isEmpty()

判断字符串是否为空(长度为0)。

 String str = "";
 boolean isEmpty = str.isEmpty(); // true

startsWith(String prefix)判断字符串是否以指定的前缀开始。

     String str = "Hello World";
     boolean startsWithHello = str.startsWith("Hello"); // true

endsWith(String suffix)

判断字符串是否以指定的后缀结束。

 String str = "Hello World";
 boolean endsWithWorld = str.endsWith("World"); // true

contains(CharSequence s)判断字符串是否包含指定的字符序列。

 String str = "Hello World";
 boolean containsHello = str.contains("Hello"); // true

StringBuilder

StringBuilder是Java中用于构建和操作字符串的一个高效类,尤其在需要频繁修改字符串内容的场合下,使用StringBuilder比使用String类更加高效,因为String是不可变的每次修改都会创建一个新的字符串对象,而StringBuilder则是在原有对象上进行修改。以下是StringBuilder的一些基本用法:

StringBuilder sb = new StringBuilder(); // 创建一个空的StringBuilder对象
StringBuilder sb2 = new StringBuilder("Hello"); // 创建一个初始值为"Hello"的StringBuilder对象
StringBuilder sb3 = new StringBuilder(50); // 创建一个容量为50的StringBuilder对象

常用方法

append()

用于向StringBuilder对象的末尾添加各种类型的数据。

StringBuilder sb = new StringBuilder();
sb.append("Hello ");
sb.append("World");
sb.append(123);
System.out.println(sb); // 输出: Hello World123
insert()

在指定位置插入字符串或其他类型的数据。

StringBuilder sb = new StringBuilder("Hello World");
sb.insert(5, "Java ");
System.out.println(sb); // 输出: HelloJava World
delete()

删除指定范围内的字符。

StringBuilder sb = new StringBuilder("Hello World");
sb.delete(6, 11);
System.out.println(sb); // 输出: HelloWorld
replace()

替换指定范围内的字符。

StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java");
System.out.println(sb); // 输出: Hello Java
reverse()

反转字符串中的字符顺序。

StringBuilder sb = new StringBuilder("Hello World");
sb.reverse();
System.out.println(sb); // 输出: dlroW olleH
toString()

将StringBuilder对象转换成String对象。

StringBuilder sb = new StringBuilder("Hello World");
String str = sb.toString();
System.out.println(str); // 输出: Hello World


为什么要将stringbuilder转换为string类型的?

  1. 最终输出: 当你完成了对字符串的构建和修改,并且不再需要进一步的修改时,通常会将其转换为String对象。这是因为String是不可变的,这使得它在作为参数传递给方法、存储在集合中或者作为键在映射中使用时更安全和高效

  2. 兼容性: 许多API和框架期望接收String类型的参数,而不是StringBuilder。例如,当你需要将构建好的字符串传递给一个只接受String参数的方法时,就需要进行转换。

  3. 数据持久化: 如果你需要将字符串写入文件、数据库或网络传输,通常会使用String,因为大多数持久化层和网络协议都支持String类型。

  4. 性能优化: 在某些情况下,虽然StringBuilder提供了更好的性能用于构建和修改字符串,但在字符串构建完成后,转换为String可以避免不必要的内存占用因为StringBuilder可能保留了内部缓冲区的空间

  5. 线程安全: StringBuilder本身不是线程安全的,而String是不可变的,因此在多线程环境中更安全。如果你的字符串将在多个线程之间共享,转换为String可以防止意外的并发修改。

链式编程

public class StringBuilderDemo4 {
    public static void main(String[] args) {
        //1.创建对象
        StringBuilder sb = new StringBuilder();
​
        //2.添加字符串
        sb.append("aaa").append("bbb").append("ccc").append("ddd");
​
        System.out.println(sb);//aaabbbcccddd
​
        //3.再把StringBuilder变回字符串
        String str = sb.toString();
        System.out.println(str);//aaabbbcccddd
​
    }
}

场景使用字符串

首先字符串是不能改变的,字符串进行拼接各种操作

  public static void main(String[] args) {
        //1.键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
​
        //2.反转键盘录入的字符串
        String result = new StringBuilder().append(str).reverse().toString();
这里就是创建一个字符串StringBuilder然后再进行各种字符串的操作然后.tostring()
        //3.比较
        if(str.equals(result)){
            System.out.println("当前字符串是对称字符串");
        }else{
            System.out.println("当前字符串不是对称字符串");
        }
​
    }

  public static void main(String[] args) {
        //1.定义数组
        int[] arr = {1,2,3};
​
        //2.调用方法把数组变成字符串
        String str = arrToString(arr);
​
        System.out.println(str);
​
    }
​
​
    public static String arrToString(int[] arr){
        StringBuilder sb = new StringBuilder();
        sb.append("[");
​
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1){
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]).append(", ");
            }
        }
        sb.append("]");
​
        return sb.toString();
    }

集合

ArrayList类是Java集合框架中的一个重要组成部分,它实现了List接口,提供了一种基于动态数组的列表实现。下面是关于ArrayList类的一些关键概述:

public class ArrayListExample {
​
    public static void main(String[] args) {
        // 创建一个空的ArrayList
        List<String> list = new ArrayList<>();
​
        // 添加元素
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");
​
        // 输出整个列表
        System.out.println("Original list: " + list);
​
        // 访问列表中的元素
        String secondItem = list.get(1);
        System.out.println("Second item: " + secondItem);
​
        // 修改列表中的元素
        list.set(1, "Blueberry");
        System.out.println("Updated list: " + list);
​
        // 在指定位置插入元素
        list.add(1, "Grape");
        System.out.println("List after insertion: " + list);
​
        // 删除列表中的元素
        list.remove("Grape");
        System.out.println("List after deletion: " + list);
​
        // 删除指定位置的元素
        list.remove(1);
        System.out.println("List after removing at index 1: " + list);
​
        // 遍历列表
        System.out.println("Iterating over the list:");
        for (String fruit : list) {
            System.out.println(fruit);
        }
           // 检查列表是否包含某个元素
        boolean containsApple = list.contains("Apple");
        System.out.println("Does the list contain 'Apple'? " + containsApple);
        
        // 获取列表的大小
        int size = list.size();
        System.out.println("Size of the list: " + size);
        
        // 清空列表
        list.clear();
        System.out.println("List after clear: " + list);
    }

这段代码展示了如何使用ArrayList进行基本操作,包括创建、添加、访问、修改、删除元素,以及遍历列表。通过这些操作,你可以看到ArrayList在Java编程中的灵活性和实用性。

ArrayList存储字符串并遍历

创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合

for (int i = 0; i < list.size(); i++) {
            //i 依次表示集合里面的每一个索引
​
            if(i == list.size() - 1){
                //最大索引
                System.out.print(list.get(i));
            }else{
                //非最大索引
                System.out.print(list.get(i) + ", ");
            }
        }

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值