详述String实例化方法

三、String

1. 简介

​ java.lang.String 字符串就是一个字符序列,由多个字符组成,是Java中最常用的类型

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence

​ 创建字符串的方式:

  • 直接创建
  • 使用构造方法创建
/*
 * 1.直接创建 
 * 该方式本身来说是不符合引用类型的特点,不符合面向对象的规范
 * 原则上来说,所有引用类型都应该通过new关键来创建对象,只有基本数据类型才能直接赋值
 * String是一种特殊的引用类型,由于特别常用,所以JVM对其做了优化
 */
String s1 = "hello";
char c = 'h'; // 单个字符
String s2="h"; //只包含一个字符的字符串
String s3=""; //空字符串

/*
 * 2.使用构造方法创建
 */
String s4=new String(); //空字符串
String s5=new String("world");

//空字符串和null的区别
String s6=""; //在堆内存中分配了内存,但为空字符串
String s7=null; //在堆内存中没有分配 空间

//String可以和其他任意类型进行+的操作,实现字符串拼接
System.out.println(s1+12+8);
System.out.println(s1+true);
System.out.println(s1+'x');

2. 常用方法

方法名作用
length获取字符串长度
indexOf获取指定子串第一次出现的位置,如果找不到则返回-1
lastIndexOf获取指定子串最后一次出现的位置
substring获取指定索引范围内的子串,即截取字符串,范围[beginIndex,endIndex),左闭右开
charAt获取指定索引位置的字符
concat字符串拼接,很少使用,一般都直接使用+进行拼接
startsWith判断是否以指定子串开头
endsWith判断是否以指定子串结尾
contains判断是否包含指定子串
isEmpty判断是否为空字符串
equals判断值是否相等
equalsIgnoreCase判断是否相等,忽略大小写
toUpperCase转换为大写
toLowerCase转换为小写
replace替换
trim去掉字符串首尾的空格
split将字符串分割为数组
toCharArray将字符串转换为字符数组
getBytes将字符串转换为字节数组
join将多个元素以指定分隔符拼接为字符串,jdk8中新增方法,静态方法String.join()
String str = "aEllo woRld";

// length()
System.out.println("字符串长度:" + str.length());

// indexOf()
System.out.println("字符o第一次出现的位置:" + str.indexOf('o')); // 索引从0开始,如果找不到则返回-1
System.out.println("字符串wo第一次出现的位置:" + str.indexOf("wo"));
System.out.println("从索引为6的位置开始后向查找字符o第一次出现的位置:" + str.indexOf('o', 6));

// lastIndexOf()
System.out.println("字符o最后一次出现的位置:" + str.lastIndexOf('o'));

// substring()
System.out.println("获取索引为[3,7)之间的子串:" + str.substring(3, 7)); // 左闭右开
System.out.println("获取索引为3到结尾的子串:" + str.substring(3));

// charAt()
System.out.println("获取索引为1的字符:" + str.charAt(1));

// concat()
System.out.println("在字符串后拼接abc" + str.concat("abc"));

// startsWith()
System.out.println("是否以he开头:" + str.startsWith("he"));

// endsWith()
System.out.println("是否以abc结尾:" + str.endsWith("abc"));

// contains()
System.out.println("是否包含el:" + str.contains("el"));

// isEmpty()
System.out.println("是否为空字符串:" + str.isEmpty()); // 本质上就是判断str.length==0
System.out.println("是否为null:" + str == null);

// equals()
String str2 = new String("hello World");
System.out.println("地址是否相同:" + str == str2);
System.out.println("内容是否相同:" + str.equals(str2));

// equalsIgnoreCase
System.out.println("忽略大小的话,内容是否相同:" + str.equalsIgnoreCase(str2));

// toUpperCase()
System.out.println("转换为大写:" + str.toUpperCase());

// toLowerCase()
System.out.println("转换为小写:" + str.toLowerCase());

// replace()
System.out.println("将字符o替换为x:" + str.replace('o', 'x')); // 返回一个新字符串
System.out.println(str); // 原字符串没有变化

// trim()
System.out.println("去除两边的空格:"+str.trim());

// split()
String[] arr1 = str.split(" ");
System.out.println("以空格进行分割:"+Arrays.toString(arr1));
System.out.println("以o进行分割:"+Arrays.toString(str.split("o")));

//toCharArray()
System.out.println("-----将字符串转换为字符数组--------");
char[] chars = str.toCharArray();
System.out.println(Arrays.toString(chars));
System.out.println("-----将字符数组转换为字符串--------");
String str3 = new String(chars);
System.out.println(str3);

// getBytes()
System.out.println("-----将字符串转换为字节数组--------");
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));
System.out.println("-----将字节数组转换为字符串--------");
String str4 = new String(bytes);
System.out.println(str4);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值