day_12 String方法和StringBuilder

String常用方法

判断方法
boolean	endsWith(String suffix) 
测试此字符串是否以指定的后缀结尾。

在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) {
    String str1 = "hello World";
    String str2 = new String("hello world");
    System.out.println(str1.equals(str2));
    System.out.println(str1.equalsIgnoreCase(str2));
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查找
在这里插入图片描述
与indexof方法的查找顺序相反
在这里插入图片描述
获取长度
在这里插入图片描述
替换
在这里插入图片描述

分割
在这里插入图片描述

String str5 = "155.3422.6932";
String[] arrStr = str5.split("\\.");
for(String str : arrStr){
    System.out.println(str);
}

在这里插入图片描述

String str6 =  str5.substring(5);//从指定位置开始 一直到字符串的末尾
String str7 = str5.substring(0,3);//包含开始 位置 不包含结束位置

转换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

System.out.println(str8.toLowerCase());
System.out.println(str8.toUpperCase());
System.out.println(str8.toString());
System.out.println(arr.toString());

toString返回 对象的 字符串表示形式

String str9 = "  java se   ";
System.out.println(str9);
System.out.println(str9.trim());// 去除字符串的首尾的空格 不能去除中间空格

在这里插入图片描述

int a = 10;
int b = 20;
System.out.println(a + b);//30
System.out.println(String.valueOf(a) + b);//1020

在这里插入图片描述

public class StringDemo_02 {
    /*
    案例 :拼接字符串
需求:定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,
并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
    思路:
    ①定义一个 int 类型的数组,用静态初始化完成数组元素的初始化
    ②定义一个方法,用于把 int 数组中的数据按照指定格式拼接成一个字符串返回。返回值类型 String,参数列表 int[] arr
    ③在方法中遍历数组,按照要求进行拼接
    ④调用方法,用一个变量接收结果
    ⑤输出结果
     */

    public static void main(String[] args) {
        int[] arr = {2,1,4,53,2,2,4,5};
        printArray(arr);
    }

    public static void printArray(int[] arr){
        String arrStr="[";
        for(int i = 0 ; i < arr.length;i++){
            if(i == arr.length-1){//此时是最后一个元素
                arrStr += arr[i];
            }else{
                arrStr += arr[i] + ",";
            }
        }
        arrStr +="]";
        System.out.println(arrStr);
    }
}

在这里插入图片描述

public class StringDemo_03 {
    public static void main(String[] args) {
        String str = "abcde";
        String res = reverse(str);
        System.out.println(res);
    }

    /**
     * 实现的功能就是将str字符串反转 并返回
     * @param str 表示需要反转的字符串
     * @return  反专之后的 字符串
     */
    public static String reverse(String str){
        String reverseStr = "";
        for(int i = str.length()-1;i>-1;i--){
           char c =  str.charAt(i);
           reverseStr += c;
        }
        return reverseStr;
    }
}

StringBuffer和StringBuilder

• 一个可变的字符序列。 此类提供与StringBuffer的API,但不保证同步。 此类设计用作简易替换为StringBuffer在正在使用由单个线程字符串缓冲区的地方(如通常是这种情况)。 在可能的情况下,建议使用这个类别优先于StringBuffer ,因为它在大多数实现中将更快。

• StringBuilder的主要StringBuilder是append和insert方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。 append方法始终在构建器的末尾添加这些字符; insert方法将insert添加到指定点。
在这里插入图片描述
StringBuilder类的构造方法
在这里插入图片描述

容量的保证机制

在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) {
    //创建一个StringBuilder对象
    StringBuilder sb = new StringBuilder();//容量16
    StringBuilder sb1 = new StringBuilder("helloWorld");//容量helloWorld.length() + 16
    // 向StringBuilder中追加字符串
    sb.append("abc");
    sb.append(11);
    sb.append(true);
    sb.append(23.32);
    sb.append(123L);
    sb.append('a');
    sb.append(new char[]{'3','m'});
    // StringBuilder和String之间 的转换
    System.out.println(sb.toString());
    // 插入
    sb1.insert(3,100);// 3 从字符串开始位置往后的 偏移量 插入位置
    String str = "java";
    char[] arr = str.toCharArray();
    // index  表示插入到StringBuilder对象的位置
    // arr 是插入的字符数组
    // offset 表示 取数组的元素的 开始位置
    // len 表示取数组中的元素的个数
    sb1.insert(6,arr,1,2);
    System.out.println(sb1.toString());
}

反转:
在这里插入图片描述

String str1 = "helloworld";
StringBuilder stringBuilder = new StringBuilder(str1);
stringBuilder.reverse();
System.out.println(stringBuilder.toString());
//这种编程方式称为链式编程
sb.append("abc").append(true).append(100).append('a');

删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) {
    StringBuilder sb= new StringBuilder("hellojavaee");
    //删除
    //delete(int start, int end) 删除指定区间内的子字符串
    sb.delete(2,5);// 前闭后开区间
    System.out.println(sb.toString());
    //deleteCharAt(int index) 删除指定位置的字符
    sb.deleteCharAt(2);
    System.out.println(sb.toString());
    //修改  setCharAt(int index, char ch)
    sb.setCharAt(0,'H');
    System.out.println(sb.toString());
    //截取
    //String substring(int start)  从开始位置截取到末尾
    //String substring(int start, int end)截取指定区间的子串
    String sub1 = sb.substring(3);
    System.out.println(sub1);
    String sub2 = sb.substring(3,5);
    System.out.println(sub2);

}

获取的容量
在这里插入图片描述

System.out.println(sb.capacity());//返回容量 27
sb.trimToSize();//释放没有字符的空间 保留足够 容纳当前字符串的空间
System.out.println(sb.capacity()//7

StringBuilder和StringBuffer的区别:

StringBuilder 是不同步  不是线程安全的
StringBuffer 是 同步的  也是 线程安全的

String和StringBuilder的使用场景

对于String 当我仅需要使用一个字符串,而且 字符串不会出现频繁的修改 则使用String
而如果 字符串需要频繁 的 修改  则使用StringBuilder
StrignBuffer基本不用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
StringBuilder换行可以使用标准的换行符"\r\n"来拼接。例如,如果我们想要在StringBuilder中进行换行拼接,可以使用以下代码: ``` String s = "aaaaaaa" "b"; StringBuilder stringBuilder = new StringBuilder(); String c = stringBuilder.append(s).append("\r\n").append(3).toString(); System.out.println(c); ``` 输出结果如下: ``` aaaaaaab 3 ``` 在上述代码中,我们使用"\r\n"来实现换行拼接。这样,当我们将StringBuilder中的内容输出时,会在"aaaaaaa"和"b"之间插入一个换行符。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java 字符串拼接的三种方式 “+”、“String.format()”、“StringBuilder.append()”,换行拼接“\r\n”](https://blog.csdn.net/studyday1/article/details/127926858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Java StringBuilder](https://download.csdn.net/download/qq_18505715/9875961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值