字符串创建及使用

package cn.test;

import java.util.Arrays;

/**
 * 介绍字符串的常见创建方法以及常用方法
 * 字符串,不可变类型,引用数据类型,默认值null, 在效果上相当于char[], 底层原理是byte[]
 * 构造方法:
 *      String()  空参创建空串 注意:不等于null;
 *      String(char[] array) 根据字符数组创建
 *      String(bute[] array) 根据字节数组创建
 *      或者直接用双引号形式创建, 程序中所有的双引号字符串都是String类的对象
 *      String(String original) 因为传递的参数已经是一个字符串,所以新建的字符串是源字符串的副本 *不推荐使用这种方式*
 *      String(StringBuilder str) 根据StringBuilder对象创建String对象
 */
public class UsageOfString {
    public static void main(String[] args) {
        // 创建空串
        String str1 = new String();
        System.out.println(str1);  // 输出为空
        // 直接创建
        String str2 = "abcd";
        char[] a = new char[] {'H', 'e', 'l', 'l', 'o'};
        // String(char[] array) 根据字符数组创建
        String str3 = new String(a);
        System.out.println(str3);        // Hello
        byte[] b = new byte[] {97, 98, 99, 100, 101};
        // String(bute[] array) 根据字节数组创建
        String str4 = new String(b);
        System.out.println(str4);         // abcde
        // String(StringBuilder str) 根据StringBuilder对象创建String对象
        String str5 = new String(new StringBuilder("world"));
        System.out.println(str5);      // world
        System.out.println("===============================================================");
        methodStringTest();
    }

    /**
     * String类的常用方法
     * bool  equals(Object obj)   比较字符串与指定对象是否相同
     * bool  equalsIgnoreCase(String str)   忽略字符大小写,比较是否相同
     * int   length()      返回长度
     * String concat(String str)  连接两个str
     * char charAt(int index)   返回指定索引处字符
     * int indexOf(String str)  返回str在字符串中首次出现的位置, 未找到返回-1
     * String substring(int index) 从index位置截取字串到末尾
     * String substring(begin, end)    [begin, end)
     * char[] toCharArray()  转化为字符数组
     * byte[]  getBytes()  获取字节数字
     * String replace(oldstring, newstring)  用新序列替换旧序列
     * String[] split(regex)  注意:regex是一个正则表达式。按照指定正则切分成字符串数组
     * bool endsWith(String suffix)  是否以suffix结尾
     * bool startsWith(String prefix)  是否以prefix开始
     */
    public static void methodStringTest() {
        /* 注意,只要是字符串对象都可以使用,上述创建方式都可以,以下均选择直接双引号形式创建 */
        // bool  equals(Object obj)   比较字符串与指定对象是否相同
        System.out.println("abc".equals("abcd"));     // false
        System.out.println("abc".equals("abc"));       // true
        // bool  equalsIgnoreCase(String str)   忽略字符大小写,比较是否相同
        System.out.println("aBc".equalsIgnoreCase("AbC"));  //true
        // int   length()      返回长度
        System.out.println("abcdjkfla".length());    //9
        // String concat(String str)  连接两个str
        System.out.println("hello ".concat("java")); //hello java
        // char charAt(int index)   返回指定索引处字符
        System.out.println("Tom is a cat".charAt(0)); //T
        System.out.println("Tom is a cat".charAt(5));   //s
        // int indexOf(String str)  返回str在字符串中首次出现的位置, 未找到返回-1
        System.out.println("Jack is a mouse".indexOf('a'));  // 1
        System.out.println("Jack is a mouse".indexOf("a"));   //1
        System.out.println("Jack is a mouse".indexOf("mouse")); //10
        // String substring(int index) 从index位置截取字串到末尾
        System.out.println("this is a test".substring(5)); //is a test
        // String substring(begin, end)    [begin, end)
        System.out.println("Build completed successfully".substring(5, 14)); // complete 不包含第14个 'd'
        // char[] toCharArray()  转化为字符数组  用Arrays的方法输出数组
        System.out.println(Arrays.toString("hello".toCharArray())); //[h, e, l, l, o]
        // byte[]  getBytes()  获取字节数字
        System.out.println(Arrays.toString("AaZz".getBytes()));  // [65, 97, 90, 122]
        // String replace(oldstring, newstring)  用新序列替换旧序列
        System.out.println("passworld: 11111".replace('1', '*')); //passworld: *****
        // String[] split(regex)  注意:regex是一个正则表达式。按照指定正则切分成字符串数组
        // . 在正则中是由含义的,所以要转义,而\在java中用\\ 表示
        System.out.println(Arrays.toString("ff jj kk ll dd".split("\\."))); //[ff jj kk ll dd]
        System.out.println("hello nihao".endsWith("nihao")); // true
        System.out.println("today is good".startsWith("today")); // true

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值