有关String类里面一些方法的使用实例

1.字符数组与字符串

public class TestDemo4 {
    public static void main(String[] args) {
        char[] arr1 = {'R','o','o','k','i','e'};
        System.out.println(new String(arr1,0,4));//将字符数组部分转换成字符串
        System.out.println(String.copyValueOf(arr1));//将字符数组全部转换成字符串
        String str2 = new String(arr1);//将字符数组全部转换成字符串
        System.out.println(str2);
        System.out.println(str2.charAt(2));//取得指定索引位置的字符
        System.out.println(str2.toCharArray());//将字符串变为字符数组返回
    }
}

结果如下
在这里插入图片描述
2.字节与字符串

public class TestDemo4 {
    public static void main(String[] args) {
        String str = "Legendary";
        byte[] arr1 = str.getBytes();//将字符串以字节数组的形式返回
        System.out.println(new String(arr1));//将字节数组全部变为字符串
        System.out.println(new String(arr1,0,5));//将字节数组部分变为字符串
    }
}

结果如下
在这里插入图片描述
3.字符串比较

public class TestDemo4 {
    public static void main(String[] args) {
        String str1 = "Godlike";
        String str2 = "godlike";
        System.out.println(str1.equals(str2));//区分大小写的相等比较
        System.out.println(str1.equalsIgnoreCase(str2));//不区分大小写的相等比较
        System.out.println(str1.compareTo(str2));//比较两字符串的大小关系
    }
}

结果如下
在这里插入图片描述
4.字符串查找

public class TestDemo4 {
    public static void main(String[] args) {
        String str1 = "unstoppable";
        System.out.println(str1.contains("stop"));//判断一个字符串是否存在
        System.out.println(str1.indexOf("stop"));//从头开始查找指定字符串的位置
        System.out.println(str1.indexOf("stap"));
        System.out.println(str1.indexOf("a",3));//从指定位置开始查找字符串的位置
        System.out.println(str1.lastIndexOf("stop"));//从后向前查找字符串的位置
        System.out.println(str1.lastIndexOf("p",2));//从指定位置右后向前查找
        System.out.println(str1.startsWith("n"));//判断是否以指定字符串开头
        System.out.println(str1.startsWith("n",2));//从指定位置开始判断是否以指定字符串开头
        System.out.println(str1.endsWith("le"));//判断是否以指定字符串结尾
    }
}

结果如下
在这里插入图片描述
5.字符串的替换与截取

public class TestDemo4 {
    public static void main(String[] args) {
        String str1 = "Pentakill";
        System.out.println(str1.replaceAll("l","y"));//替换所有的指定内容
        System.out.println(str1.replaceFirst("l","a"));//替换首个内容
        System.out.println(str1.substring(5));//从指定索引截取到结尾
        System.out.println(str1.substring(0,5));//截取部分内容
    }
}

结果如下
在这里插入图片描述
6.字符串拆分

import java.util.Arrays;

public class TestDemo4 {
    public static void main(String[] args) {
        String str1 = "I am a rookie";
        String[] arr1 = str1.split(" ");//将字符串全部拆分
        System.out.println(Arrays.toString(arr1));
        String[] arr2 = str1.split(" ",3);//将字符串部分拆分,limit就是该数组的长度
        System.out.println(Arrays.toString(arr2));
        String str2 = "12*34^56:78*9:0^a";
        String[] arr3 = str2.split("\\*");//有些内容需要用"\"转义
        System.out.println(Arrays.toString(arr3));
        String[] arr4 = str2.split("\\^");
        System.out.println(Arrays.toString(arr4));
    }
}

结果如下
在这里插入图片描述
7.其他的操作方法

public class TestDemo4 {
    public static void main(String[] args) {
        String str1 = "   I am a rookie  ";
        System.out.println(str1.trim());//去掉字符串中的左右空格,保留中间空格
        System.out.println(str1.toUpperCase());//字符串转大写
        System.out.println(str1.toLowerCase());//字符串转小写
        System.out.println(str1.length());//取得字符串长度
        System.out.println(str1.isEmpty());//判断是否为空字符串,不是null,是指长度为0
        System.out.println(str1.intern());//字符串入池操作
        System.out.println(str1.concat("You too"));//字符串连接,等同于“+”,不入池
    }
}

结果如下
在这里插入图片描述

在一个内部创建另一个的对象,通常被称为“实例嵌套”或“对象作为成员”。这种做法在某些场景下是有意义并且有用的。例如,在某些系统设计中,一个可能会封装一组相关的功能,而每个功能都可以通过创建特定实例来实现。 ### 实现方式 在面向对象编程语言中,如Python、C++、Java等,内部创建对象是一种常见的实践。下面是一些基本的例子: #### Python 示例: ```python class OuterClass: def __init__(self): self.inner_obj = InnerClass() class InnerClass: def print_message(self): print("Hello from inner class") # 使用示例 outer_instance = OuterClass() outer_instance.inner_obj.print_message() # 输出 "Hello from inner class" ``` #### C++ 示例: ```cpp #include <iostream> class OuterClass { public: void displayInnerObject() { std::cout << "Displaying inner object." << std::endl; } private: class InnerClass { public: void printMessage() { std::cout << "This is an inner message." << std::endl; } }; InnerClass innerObj; }; int main() { OuterClass outerInstance; outerInstance.innerObj.printMessage(); // 输出 "This is an inner message." return 0; } ``` #### Java 示例: ```java public class OuterClass { private InnerClass innerObj; public void displayInnerObject() { System.out.println("Displaying inner object."); } static class InnerClass { public void printMessage() { System.out.println("This is an inner message."); } } public static void main(String[] args) { OuterClass.outerInstance.displayInnerObject(); new OuterClass().innerObj.printMessage(); // 输出 "This is an inner message." } } // 注意:这里的 `new OuterClass()` 实际上是静态上下文,因此需要显式创建 `OuterClass` 的实例并访问其私有字段 `innerObj` ``` ### 优点与应用场景 1. **代码复用**: 如果外和内之间存在紧密耦合的功能,将它们合并到一起可以减少冗余代码。 2. **模块化**: 对象作为成员允许在更复杂的模块结构中分组相关操作。 3. **封装性增强**: 将复杂的功能分解成较小的独立部分有助于更好地控制和管理程序的不同方面。 ### 注意事项 尽管实例在某些情况下非常有用,但也需要注意避免过度依赖于这种方法,因为它可能导致代码难以理解和维护。特别是在大型项目中,应当谨慎使用实例作为成员的方式,并考虑是否使用接口、抽象或其他设计模式来提高系统的灵活性和可扩展性。 ### 相关问题: 1. **实例作为成员的主要目的是什么?** 2. **如何在实际应用中有效利用实例化特性?** 3. **何时应该避免在一个内部实例化另一个?**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值