常用类 — String

字符串String

		字符串是我们编程最重要的一种类型,远远高于所有的基本数据类型,特别是针
	对于输入输出,用户在输入或者接受输出的时候是我们遗失不到的数据类型,那
	么他输入的所有东西和接受的所有输出,其实都应该看成字符串。
	
	   String是经过专门设计的,他是具有引用数据类型的本质,但是使用上
   有可以像基本数据类型一样直接赋值

特点

java当中还设计了StringBuilder \ StrinngBuffer这两个同样表示字符串的类的原因

1、String的常量对象是预加载的,并且每个常量对象被放在一个叫“字符串常量池”的地方
	提升了字符串常量的效率
	
2、String对象的内容不可变,所有的改变都其实都是产生了一个新的String对象
	降低了字符串使用的性能
	
3、java为String设计的大量的API方法,可以帮助我们完成各种各样的功能,掌握的越多越熟练的越好

分类

1、String当中有关数组的方法

   1、 String str = new String( "hello" );
    	char[ ]  array = str.toCharArray( );
    		将字符串中的字符串取出来,以char[ ]d 形式返回
		
2、	int length = str.length( );
		获取字符串的长度
		
3、	char c = str . charAt(1);
		获取字符串读几个位置什么字符,从下标0开始
		
4、	int index = str.indexOf( 'l' );
		获取字符在字符串当中第一次出现的下标位置,如果没有返回 -1
		
5、	index = str.lastIndexOf(  'l' );
		获取字符在字符串中最后出现的位置下标

2、String当中于字符串内容当中的方法

1、	boolean fiag = str.equals( "hello" );
		判断字符串内容是否相等
		
2、	fiag = str.equalsIgnoreCase("Hello");
		判断字符串内容在忽略大小写的情况下是否相等
		
3、	int value = str.compareTo("hello");
		判断字符串的大小差值,按字典顺序(先比较第一对字符的差值,如果所有字符都一样,再比较长度)
		
4、	value = str.compareToIgnoreCase("Hello");
		判断字符串之间忽略大小写的差值
		
5、	str = str.toLowerCase();
		把字符串贬称全小写
		
6、	str = str.toUpperCase();
		把字符串全变大写
		
7、	fiag = str.startsWith("wo");
		判断字符串以什么开头,返回boolean值
		
8、	fiag = str.endsWith("LD");
		判断字符串以什么结尾

3、String当中特有的方法

1、trim()
	去掉字符串当中的前后空格!用来接收用户输入!
	str = " hello worid ";
	str = str.trim();
	
2、subString()
	str = "hellowrid";
	在字符串当中根据下标截取字符串,包含指定下标
	str = str.substring(4); 
	从指定下标开始截取到指定下标结束,前闭后开
	str = str.substring(4,6); 
	
3、replace( )
	str = "hellowrld";
	字符串内容替换
	
	str = str.replace("l", "f");
	把指定字符串替换成另一个字符串
	
	str = str.replace("ff", "fuckyou");
	replaceAll功能相当于指定字符串替换成另一个,但是他支持“正则表达式”
	str = str.replaceAll("fuckyou", "l");
	
4、split()
	拆分字符串
	String date = "2019-5-9";
	根据指定的分隔符,对字符串进行拆分,返回字符串数组,他也支持“正则表达式”
	String[] strArray = date .split("-");

5、matches()

判断字符串是否满足正则表达式
正则表达式符号:

[ ] : 表示一个字符,括号里面写上字符能够允许添哪些符号
    
 ^ : 除了括号里面罗列的,其他都可以
    
{ } : 表示括号前面规则出现的次数
    
{m,n} : 最少出现m次  最少出现n次
    			
{m,} : 至少出现m次,多则不限
    			
{m} : 只能出现m次
   			
*  : 代表任意次数
    			
+ : 至少一次

? : 0到1次
    			
() : 表示分组,括号内每组内容都可选,每组之间用 ”|“ 分隔

特殊类:

StringBuffer和StringBuilder

StringBuffer和StringBuilder不是String里面的类,有博客重点分析三者的区别,这里只是先提一下:

是专门用来解决大量进行 String的拼接而导致的产生很多String对象问题
	StringBuffer
		首先出现的是StringBuffer,JDK1.0即提出
		
		StringBuffer与String没有继承关系,所以StringBuffer不能向String一样用“ ” 常量直接赋值,“ ”常量是String类型
		“ + “ 号做拼接只支持String,不支持StringBuffer
		
		StringBuffer提供的方法不如String丰富,主要的作用就是做拼接,而他拼接的特点就是不产生新对象,直接是在原对象上做改变
		
	StringBuilder
		是一个StringBuffer的补充类,两者的作用与提供方法都是一模一样的,都是用来替代String,完成内容可变的字符串拼接。StringBuilder出现在JDK1.5

区别

StringBuffer是线程同步的,StringBuilder是线程不同步的
    		所谓同步,是指线程安全性的实现手段
    		同步表示线程安全,不同步表示不安全;同步会导致线程效率低,不同步表示线程效率高
发布了27 篇原创文章 · 获赞 5 · 访问量 1015

猜你喜欢

转载自blog.csdn.net/weixin_44356055/article/details/90144868