java字符串

本文介绍了Java中的字符串常量池,强调了字符串的不可变性以及在不同JDK版本下的实现。讨论了字符串的等值比较,特别是`==`与`equals()`的区别。还详细讲解了字符串的方法,如substring()、length()、indexOf()等,并探讨了正则表达式的基础知识。最后,文章通过示例展示了StringBuilder类在可变字符串操作上的应用。
摘要由CSDN通过智能技术生成

字符串常量池:存放字符串的容器

字符串常量池在哪儿:根据jdk的不同

 1字符串( 不可变 字符串是指不可变地址)

2字符串等值比较: 避免数据频繁的创建和销毁,提高效率。

定义字符串两种方式

1String  a= "3";

String b = new String ("3");

这里的a和b是不等的他们两个的地址是不同的

所以在比较两个字符串时

 按ctrl 可以点进去 this指方法的调用者

字符串中的方法

1取子串

2

字符串:
new
new:表示的是重新开辟一个新的空间

String a =new String("aaa");

---------

String a =“aaaa";

String b =“aaaa";

a==b;//为TRUE,因为他们引用的是同一个地址的值

String c =new String("aaa");

String d =new String("aaa");

c==d;//为FALSE,因为new是新开辟的空间,所以c和d 的引用地址是不同的。

1、获取子串
substring()方法

String aa="dashsjdhaus";
String b=aa.substring(2,4);//前闭后开[2,4)2、3

 

2、检测字符串是否相等
引用类型==引用类型 表示两个引用类型,引用的地址是同一个地址的数据,是同一个就返回TRUE,不是返回FALSE

a、c为两个字符串(引用类型)a==c比较的是两个字符串所存储的地址是否相同,a.equals(c)是比较两个值是否相等。

使用equals()方法判断字符串是否相等
 

“hello”.equals("hello");
“hello”.equalslgnoreCase("hello");//不区分大小写

 

package asjs;

public class eg {
	public static void main(String[] args) {
		String a ="hoeoollo";//字面量定义
		//string常用的办法
		//长度
		System.out.println(a.length());
		//获取指定字符
		System.out.println(a.charAt(1));
		//获取指定字符的编码值
		System.out.println(a.codePointAt(1));
		
		//判断是否是以 "  "中的结尾 endsWith(" ")
		System.out.println(a.endsWith("o"));
		
		//判断是否是以 "  "为前缀 startsWith(" ")
		
		//判断是否是包含 "  "为 contains(" ")
		
		//indexOf("")找第一次出现位置   如果没有则返回-1
		
		//indexOf("",4)跳过四个字符找第一次出现位置   如果没有则返回-1
		
		//lastIndexOf("") 在第10个位置反向搜索,找最后一次出现的位置  如果没有则返回-1
		System.out.println(a.lastIndexOf("o",10));
		
		
		
		
	}

}

3正则表达式

. 表示任意字符

\d代表0-9数字

\D代表非数字

\s代表空白字符

/S代表非空白字符

\w代表所有单词

\W代表非单词

^前缀以什么开头

$后缀以什么结尾

[]灵活写法 自定义字符

频率修饰词

?代表最多一次

*代表人一次

+代表至少一次

{m,n}灵活写法 自定义次数 其中m最少次数n最多次数 只有一个代表只能是那个数

4可变字符串

package asjs;

public class eg {
	public static void main(String[] args) {
		StringBuilder str = new StringBuilder("qwer");
		System.out.println(str);
		//替换
		
		String hh = "sss";
		hh.replace("s", "12");
		System.out.println(hh);
		//添加
		str.append("qwer");
		StringBuilder ass= str.insert(2, "haha");
		System.out.println(ass);
		//删除
		str.delete(1, 2);
		System.out.println(str.delete(1, 2));
		//删除指定字符
		str.deleteCharAt(3);
		//修改制定字符
		str.setCharAt(2, 's');
		System.out.println(str);
		//查
		System.out.println(str.charAt(2));
		//反转
		str.reverse();
		System.out.println(str.reverse());
		//替换
		System.out.println(str.replace(0, 2, "666"));
		
		

	}

}

package asjs;

public class eg {
	public static void main(String[] args) {
		String a ="hello";//字面量定义
		//String b  = new String ("123"); //面向对象定义
		//System.out.println(a.equals(b));
		//System.out.println(a==b);
		//substring截取子串
		System.out.println(a.substring(1,5));
		//数值是否相等equals 空串" "和null不一样
		
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值