Java笔记——String类(01)

String 类

1、String可以表示出一个字符串

2、String类实际是使用字符数组存储的

String 类的两种赋值方法

第一种:String s1 = new String(“小白”);

第二种:String s2 = "小白";

字符串常量池:在堆内存中,除了创建一个小白的对象外,还会在堆内存中的字符串常量池中再创建一个


String 类字符与字符串操作方法


class Demo 
{
	public static void main(String[] args) 
	{
		String s = "brother";
		char c = s.charAt(3);//文档中charAt的返回值类型是char类型,所以定义一个char类型的值.()中的数字,表示下表位置0,1,2,3
		System.out.println(c);

		//把字符串转换成字符数组
		char[] cs = s.toCharArray();
		for(int i = 0; i < cs.length; i++)
		{
			System.out.print(cs[i]+",");
		}
	}
}



class Demo 
{
	public static void main(String[] args) 
	{
		String info = "我的学习笔记";
		//把字符串转换成字节数组
		byte[] bytes = info.getBytes();
		for (int i=0; i<bytes.length; i++)
		{
			System.out.print(bytes[i]+",");
		}
		System.out.println();

		//把字符数组转换成字符串
		String s = new String(bytes);
		System.out.println(s);

		String s1 = new String(bytes,0,8);
		System.out.println(s1);//输出:我的学习,是因为前面的8,一个汉字占两个字节,8个字节的话,就占了4个字节,如果输入是单数的话,就会出现问号

	}
}

Sring 类编译期与运行期分析

/**
	String类编译期与运行期分析
*/
public class StringDemo{
	public static void main(String[] args){
		//情况一:
		String a = "a1";
		String a1 = "a"+1;
		System.out.println(a==a1);
		//情况二:
		String b = "b1";
		int bb = 1;
		String b1 = "b"+bb;//bb的值是一个变量,是通过编译后才能确定的
		System.out.println(b==b1);
		//情况三:
		String c = "c1";
		final int cc = 1;//final 关键字的用意是cc的值确定为1后不能再改变
		String c1 = "c"+cc;
		System.out.println(c==c1);
		//情况四:
		String d = "d1";
		final int dd = getDD();//dd的值是通过运行期后,才能确定的
		String d1 = "d"+dd;
		System.out.println(d==d1);
	}
	public static int getDD(){
		return 1;
	}
}

Sring 类判断是否以指定内容开头或结尾


prefix:前缀 suffix:后缀

class Demo 
{
	public static void main(String[] args) 
	{
		String info = "我的快乐学习笔记";
		//判断是否以指定字符串开头
		boolean b = info.startsWith("我的");
		System.out.println(b);

		boolean bool = info.startsWith("学习",4);//从第4个开始,是以学习开始的
		System.out.println(bool);

		//判断是否以指定字符串结尾
		boolean bool1 = info.endsWith("笔记");
		System.out.println(bool1);

	}
}

Sring 类替换操作


class Demo 
{
	public static void main(String[] args) 
	{
		String info = "我的学习笔记,我做主";
		info = info.replace(",",":");//replace 将第一个字符串改成第二个字符串
		System.out.println(info);
		//替换指定字符串
		info = info.replace("我的","wode");
		System.out.println(info);
		
		//使用正则表达式匹配字符串
		info = info.replaceAll("[a-z]","*");//replaceAll 使用正则表达式,正则表达式的写法[a-z],表示从a-z的26个字母	
		System.out.println(info);
		info = info.replaceFirst("\\*","!");//replaceFirst 第一个满足条件的字符串,\\*转换*号需要通过转义字符来表示,要按原意的表达,就需要转义。
		System.out.println(info);
	}
}

String 类字符串截取操作


class Demo 
{
	public static void main(String[] args) 
	{
		String info = "我的学习笔记,我做主";
		String s = info.substring(5);//substring,从第几个位置(字符)开始。“我是第一个位置”,5是从第五个字符开始
		System.out.println(s);
		String s1 = info.substring(0,6);//从0的位置到6的位置(不是很懂!T_T,指的难道是下标吗?)
		System.out.println(s1);
	}
}


String类字符串拆分操作


regex:正则表达式  split : 分开,分裂

class Demo 
{
	public static void main(String[] args) 
	{
		String info = "怀才就想怀孕-时间久了才能看出来";
		String[] value = info.split("-");
		for(String s:value)
		{
			System.out.println(s);
		}

		value = info.split("-",2);//1表示拆分成一整块,相当于每拆分,2的话,就拆分成两块,当超过的话,就会全部拆分,比如输入个3或者10
		for(String s:value)
		{
			System.out.println(s);
		}
	}
}

s:value相等于:

for (int i=0; i<values.length; i++)
{
	System.out.println(values[i]);
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值