10.常用API—String

2022-01-12  本文已影响0人  每天起床都想摆

常用API(String,ArrayList)

String

String类概述

String类创建对象的两种方式

String类常见面试题

  1. String s2 = new String("abc");
    String s1 = "abc";
    sout(s1 == s2)
    
    • 一共有几个对象

      第一条语句创建了2个对象,一个“abc”位于常量池,另一个new出的“abc”位于堆内存

      第二条创建了0个对象,第一行代码已经有“”产生的“abc”位于常量池中,这里的“”创建也会放入常量池,相同仅存留一个

    • 运行结果

      false,s1的地址是指向常量池的“abc”,s2的地址是指向堆内存中的“abc”

  2.  String s1 = "abc";
     String s2 = "ab";
     String s3 = s2 + "c";
     sout(s1 == s3);
    
    • 运行结果

      false,s1的地址指向常量池的“abc”,s3的地址指向运算产生并存放在堆内存中的“abc”

  3.  String s1 = "abc";
     String s2 = "a" + "b" + "c";
     sout(s1 == s2);
    
    • 运算结果

      true,Java存在编译优化机制,程序在编译时"a" + "b" + "c"转换成“abc”

String类常用API—字符串内容比较

String常用API—遍历,替换,截取,分割操作

方法名 说明
public int length() 返回此字符串的长度
public char charAt(int index) 获取指定索引位置处的字符
public char[] toCharArray(); 将当前字符串转换成字符数组返回
public String substring(int beginIndex, int endIndex) 根据开始&结束索引进行截取,得到新的字符串,不包括结束索引
public String substring(int begInIndex) 从传入的索引处截取,截取到末尾,得到新的字符串
public String replace(CharSquence target, CharSquence replacement) 使用新值,将字符串中的旧值替换,得到新的字符串
public String[] split(String regex) 根据传入的规则切割字符串,得到字符串数组返回
public boolean contains(CharSquence s) 判断是否包含指定字段
public boolean startsWith(String prefix) 判断字符串是否指定字段开始
package com.java.test;

public class StringAPI {
    public static void main(String[] args) {
        // 1.public  int  length()       返回此字符串的长度
        String name = "金银天然不是货币,但货币天然是金银";
        System.out.println(name.length());

        // 2.public  char  charAt(int  index)  获取指定索引位置处的字符,注意索引遵循数组索引的原则即从0开始
        System.out.println(name.charAt(8));
        // 遍历字符串中的每个字符
        for (int i = 0; i < name.length(); i++) {
            System.out.print(name.charAt(i));
        }

        System.out.println();

        // 3.public  char[]  toCharArray();  将当前字符串转换成字符数组返回
        char[] chars = name.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i]);
        }

        System.out.println();

        // 4.public  String  substring(int  beginIndex,  int  endIndex)
        // 根据开始&结束索引进行截取,得到新的字符串,不包括结束索引
        String name2 = "Java是世界上最棒的编程语言";
        System.out.println(name2.substring(0, 4));

        // 5.public  String  substring(int  begInIndex)
        // 从传入的索引处截取,截取到末尾,得到新的字符串
        System.out.println(name2.substring(4));

        // 6.public  String  replace(CharSquence  target,  CharSquence  replacement)
        // 使用新值,将字符串中的旧值替换,得到新的字符串(记住加上双引号)
        System.out.println(name2.replace("Java", "JavaScript"));

        // 7.public  String[]  split(String  regex)  根据传入的规则切割字符串,得到字符串数组返回
        String name3 = "王宝强,贾乃亮,陈羽凡,谢霆锋";
        String[] name4 = name3.split(",");
        for (int i = 0; i < name4.length; i++) {
            System.out.println(name4[i]);
        }

        // 8.public  boolean  contains(CharSquence s)   判断是否包含指定字段
        System.out.println(name2.contains("JavaScript"));
        // false,没有收到前面替换的影响是因为replace会生成新的字符串而不是改动原字符串

        // 9.public  boolean  startsWith(String prefix)  判断字符串是否指定字段开始
        System.out.println(name2.startsWith("Java"));

    }
}

String类综合案例

上一篇 下一篇

猜你喜欢

热点阅读