十四.JAVA语言核心,适合提高---------JAVA语言进阶之String类

String类

String类用于比较两个字符串查找和抽取串中的字符或子串进行字符串与其他类型之间的相互转化
String类的每次改变(例如字符串连接等)都会生成一个新的字符串,浪费内存
StringBuffer类用于内容可以改变的字符串
StringBuffer.toString()转换为String类

String类的两种实例化方法

1.使用字符串常量初始化

str1=“hello”
str2=“hello”

2.使用构造函数初始化

String str3=new String(“hello”)

这种方法会开辟出两块堆内存空间,其中一块内存会成为垃圾,也无法完成自动入池操作,数据无法共享

//手动入池
String str3=new String(“hello”).intern();

String内容的比较

1.调用equals(object)方法
2.equalsIgnoreCase()方法忽略大小写
3.使用比较运算符==
public class demo {
	
	/**
	 * String类练习
	 * @param args
	 */
	public static void main(String []args)
	{
		String str1="hello";     //类名称如str1,对象名称存在栈内存中,“hello”字符串保存在堆内存中
		String str2="hello";
		//String本身是一个类,String类的对象是可以进行引用传递的,引用传递的结果是,不同的栈内存将保存同一块堆内存空间的地址
		String str3=new String("hello");//使用new会开辟一个新堆内存空间
		String str4="HELLO";
		if(str1==str2)//等号比较两个对象是否引用同一个实例
		{
			System.out.println("str1与str2相同。");
		}
		if(str1==str3)
		{
			System.out.print("使用==-------");
			System.out.println("str1与str3相同。");
		}
		if(str1.equals(str3))//比较当前对象和参数对象的值是否相同
		{
			System.out.print("使用equals-------");
			System.out.println("str1与str3相同。");
		}
		if(str4.equalsIgnoreCase(str3))
		{
			System.out.print("使用equalsIgnoreCase-------");
			System.out.println("str3与str4相同。");
		}
		if(str4.equalsIgnoreCase(str1))
		{
			System.out.print("使用equalsIgnoreCase-------");
			System.out.println("str1与str4相同。");
		}
		
	}
}

在这里插入图片描述

4.JAVA判断字符串大小

compareTo()是按字符串中逐个字符的ASCII码值进行比较

字符串常量是String类的匿名对象

匿名对象是没有名字,而且可以调用类中的相关方法

if(str1.equals(“hello”))   //如果str1没有内容会出错
		{
			System.out.print("正常-------");
		}
	
		if(“hello”.equals(str1))//如果str1没有内容也没关系
		{
			System.out.print("正常-------");
			
		}

String类修改

public class demo {
	
	/**
	 * String类练习
	 * @param args
	 */
	public static void main(String []args)
	{
		String str1="hello";
		str1+=" world";
		str1=str1+"!!!";
			System.out.println(str1);
		
		
	}
}

在这里插入图片描述
看起来是str1发生了变换,其实不然
在这里插入图片描述

字节和字符串

public class demo {
	
	/**
	 * String类字节数组和字符串的转换
	 * @param args
	 */
	public static void main(String []args)
	{
		String str1="hellojava";
		byte []data=str1.getBytes();
		for(int i=0;i<data.length;i++)
		{
			data[i]=(byte) (data[i]-32);//byte数组的内容ASCII码减32
		}
			System.out.println(new String(data));
			System.out.println(new String(data,5,4));//public String(byte []bytes,int offset,int length);
		
	}
}

在这里插入图片描述

字符串查找

字符串截取

//subString();
public class demo {
	
	/**
	 * String类字符串截取
	 * @param args
	 */
	public static void main(String []args)
	{
		String str1="hellojava";
		
			System.out.println(str1.substring(5));
			System.out.println(str1.substring(0,5));
	}
}

在这里插入图片描述

字符串拆分

public class demo {
	
	/**
	 * String类字符串拆分
	 * @param args
	 */
	public static void main(String []args)
	{
		String str1="hello java hello world !";
		String data[]=str1.split(" ");
		for(int i=0;i<data.length;i++)
		{
			System.out.println(data[i]);
		}
		System.out.println("---------------");
			String data1[]=str1.split(" ",3);
			
			
			for(int i=0;i<data1.length;i++)
			{
				System.out.println(data1[i]);
			}
	}
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值