• API常用类(2)String类


    String
    String类概述
    字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字符串都是String类的实例.
    有两种创建形式:
    第一种:
    String s = "abc";先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找 有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中
    的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建.
    第二种:
    一概在堆中创建新对象,值存储在堆内存的对象中。 String s = new String("abc");
    1. /*
    2. String类
    3. 由多个字符组成的一串数据. 值一旦创建不可改变. 一旦值改变就会创建一个新对象
    4. 底层实现: private final char value[];
    5. */
    6. public class StringDemo1 {
    7. public static void main(String[] args) {
    8. /* String s = "abc"; //char[] c = {'a','b','c'}
    9. 0 1 2
    10. s+="def";
    11. s+="gh";
    12. s+="aaa";
    13. System.out.println(s);
    14. */
    15. /*
    16. String对象的创建方法:
    17. 1.String s = "abc";
    18. 2.String s1 = new String();
    19. */
    20. /*
    21. 简化的创建方式
    22. 先去字符串常量池中查找,有没有abc,如果没有就在字符串常量中创建一个对象(abc)
    23. 如果字符串常量中已经存在abc,那么直接指向已有的对象即可
    24. */
    25. String s = "abc";
    26. String s1 = "abc";
    27. System.out.println(s==s1);
    28. System.out.println(s.equals(s1));
    29. /*
    30. new +构造方法
    31. 凡是new 出来的,在内存空间中是独一无二的.
    32. */
    33. String s3 = new String("abc");
    34. String s4 = new String("abc");
    35. System.out.println(s3==s4);
    36. System.out.println(s3.equals(s4));
    37. }
    38. }
    构造方法
    public String()
    public String(String str)
    public String(byte[] bytes)    //将传入一个byte数组将按默认编码其转化为字符串
    public String(char[] value)    //将传入一个char数组将其转化为字符串
    判断功能
    boolean equals(Object obj)
    boolean equalsIgnoreCase(String str)
    boolean contains(String str)
    boolean isEmpty()
    boolean startsWith(String prefix)
    boolean endsWith(String suffix)

    代码示例:

    1. public class StringDemo2 {
    2. public static void main(String[] args) {
    3. /*
    4. 构造方法
    5. String();
    6. public String() {
    7. this.value = "".value;
    8. }
    9. String("字符串");
    10. */
    11. //String s1 = new String();
    12. //String s2 = new String("abc");
    13. /*
    14. 判断功能方法
    15. */
    16. String s1 = "abc";
    17. String s2 = new String("abC");
    18. System.out.println(s1.equals(s2));//比较字符串内容是否相等
    19. System.out.println(s1.equalsIgnoreCase(s2));//比较字符串内容是否相等(忽略大小写)
    20. System.out.println(s1.contains("c"));//是否包含指定的子串
    21. System.out.println(s1.isEmpty());//判断是否为""
    22. System.out.println(s1.startsWith("ab"));//判断是否以指定字符串开头
    23. System.out.println(s1.endsWith("bc"));//判断是否以指定字符串结尾
    24. String s3 = "abc";
    25. String s4 = "efg";
    26. System.out.println(s3.compareTo(s4));//字符串比大小
    27. }
    28. }
    获取功能
    int length()
    char charAt(int index)
    int indexOf(String str)
    int indexOf(String str,int fromIndex)
    String substring(int start)
    String substring(int start,int end)

    示例代码:

    1. public class StringDemo3 {
    2. public static void main(String[] args) {
    3. /*
    4. 获取功能
    5. */
    6. String s = "abcdefgd";
    7. // 01234567
    8. System.out.println(s.length());//获取字符串的长度
    9. char c = s.charAt(4);//获取指定位置(索引)的字符
    10. System.out.println(c);
    11. int index = s.indexOf("d");//从前向后找 只找首次出现的位置
    12. System.out.println(index);
    13. int index1 = s.indexOf("d",index+1);//从前向后找 从指定位置开始
    14. System.out.println(index1);
    15. int index2 = s.lastIndexOf("d");//从后向前查找,首次出现的位置
    16. System.out.println(index2);
    17. String s1 = "abcdefgd";
    18. // 01234567
    19. String s2 = s1.substring(3);//从指定的为开始截取字符串,直接到最后一位,最终返回一个新的字符串对象
    20. System.out.println(s1);
    21. System.out.println(s2);
    22. String s3 = s1.substring(2,6);//截取指定区间 包含开始位置,不包含结束位置
    23. System.out.println(s3);
    24. }
    25. }
    转换功能
    byte[] getBytes()
    char[] toCharArray()
    static String valueOf(char[] chs)
    String toLowerCase()
    String toUpperCase()
    String concat(String str)
    Stirng[] split(分割符);

    示例代码:

    1. import java.io.UnsupportedEncodingException;
    2. import java.util.Arrays;
    3. public class StringDemo4 {
    4. public static void main(String[] args) throws UnsupportedEncodingException {
    5. /* String s = "你好";//默认是utf-8编码 在utf-8编码中,一个汉字占3个字节
    6. byte[] b = s.getBytes("UTF-8");//编码
    7. System.out.println(Arrays.toString(b));
    8. *//*String s1 = new String(b,"UTF-8");//解码
    9. System.out.println(s1);*//*
    10. String s1 = new String(b,3,3,"UTF-8");//解码
    11. System.out.println(s1);*/
    12. String s = "abcd";
    13. char[] chars = s.toCharArray(); //将字符串转换为一个新的char数组
    14. System.out.println(Arrays.toString(chars));
    15. String s1 = new String(chars); //将char数组 转为字符串
    16. System.out.println(s1);
    17. String s2 = String.valueOf(chars);
    18. System.out.println(s2);
    19. String s3 = "abcdEFG一";
    20. System.out.println(s3.toUpperCase());//转大写
    21. System.out.println(s3.toLowerCase());//转小写
    22. /*String s4 = s3.concat("11"); // + 可以连接其他类型
    23. System.out.println(s4);*/
    24. String s4 = "ab&cde&efg";
    25. String[] strings = s4.split("&");//按照指定的分隔符,将字符串拆分为数组
    26. System.out.println(Arrays.toString(strings));
    27. }
    28. }

  • 相关阅读:
    针对http接口进行测试,使用Jmeter工具实现
    Go工作空间
    关于mybatis中collection出现的问题(ofType 和 javaType )
    Java 线程的核心知识
    【Python笔记-设计模式】备忘录模式
    Leetcode—515.在每个树行中找最大值【中等】
    220kV 及以下避雷器直流泄露电流试验
    基于VScode 使用plantUML 插件设计状态机
    单链表OJ题(2):反转链表(三指针法)、找中间节点(快慢指针)
    1059 C语言竞赛
  • 原文地址:https://blog.csdn.net/weixin_57197500/article/details/125293128