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 } }
字符串创建及使用
最新推荐文章于 2022-07-23 10:07:48 发布