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
}
}
字符串创建及使用
最新推荐文章于 2024-01-24 15:27:48 发布
2889

被折叠的 条评论
为什么被折叠?



