栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

字符串的相关操作(定义、拼接、比较、判断字符串是否为空串或null串、查看码点或代码单元、遍历字符串等)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符串的相关操作(定义、拼接、比较、判断字符串是否为空串或null串、查看码点或代码单元、遍历字符串等)

本文为原创文章,转载请注明出处!!

https://blog.csdn.net/featureA/article/details/123476271

--------------------------------------------------------------------------------------------------------------------------------

字符串:Java未提供字符串类型,提供一个string类作为预定义类,,string类实例用“”括起来。

1)、子串:

string类的substring方法可从字符串中提取出一个子串,共两个参数,第一个参数值表示开始截取的位置,第二个参数值表示截取结束的位置,但不包含所处的字符(即不包括参数所在位置的字符),用此方法可易得子串的长度。

2)、拼接:

可使用“+”拼接两个字符串,若拼接的两者类型不同(一者为字符串,一者不为字符串的类型,二者均不是字符串类型则不可拼接,需要进行强制类型转换后再拼接),编译器会自动转换后再进行拼接。若需将多个字符串放在一起,可使用定界符分隔,再使用使用join静态方法把他们组合起来。

3)、字符串修改:

String类没有修改字符串的方法,可对所需修改的字符串先进行提取,然后再拼接。

4)、判断字符串是否相等:

使用equals()方法,该方法返回true或false值,其中括号内的参数可以为字符串变量或字符串;若只检测字符串是否相等而不区分大小写,可以使用equalsIgnoreCase方法,不能使用==判断字符串是否相等,若用此判断,当字符串放在同一位置上时,则相等,否则不会输出true,即位置不同时,即使字符串相同亦不会判断为相等。

5)、空串与null串:

空串是长度为零的字符串,他是一个java对象有自己的长度和内容,长度为零,内容为空。

null串表示该变量既没有内容也没有长度,即没有任和对象与该变量相关联。

检查字符串既不为null也不为空串

(if(str!=null&&str.length()!=0));

6)、码点和代码单元

Java字符串由char值序列组成,char数据类型是一个采用UTF-16编码表示Unicode码点的代码单元,大多数常用Unicode字符使用一个代码单元就可表示,而辅助字符需要用一对代码单元表示。代码单元即为代码的最小存储单元,用十六位来表示,而码点是某个字符对应的代码值。

可用length方法返回字符串长度,若需要得到实际长度,即码点数量,则可调用codePointCount(参数1,参数2)方法,第一个参数表示所需字符串长度的起始位置,第二个参数表示所需字符串长度的结束位置。

调用charAt(n)方法返回位置为n的代码单元,参数n应在字符串长度内,否则会产生异常。

获取第i个位置的码点,则调用offsetByCodePoints(0,i)方法和codePointAt()方法,前者的作用是确定当前位置至所需提取码点的距离,后者的作用为在字符串中获得该码点。如

string str=”hello”;

int index=str.offsetByCode(0,i);

int cp=str.codePointAt(index);)

用codePoints()方法生成一个int值的流,各int值对应一个码点,将其转换为一个数组之后再对字符串进行遍历,可提高字符串遍历效率。

int [] codePoints=str.codePoints().toArray();

把一个码点数组转换为一个字符串:

(string str= new String(str,0,str.length);

示例代码如下: 

package corejava.inputtest.code;

public class StringAssociate {

	public static void main(String[] args) {
		String str1="hello";
		String str2="word";//定义字符串
		System.out.println(str1+str2);//字符串拼接
		System.out.println(str1+str2+"!!!!!!");
		String str3=str1.substring(0,3);//提取字符串,提取从0-3的字符串
		System.out.println(str3);
//使用静态join方法,把多个字符串放在一起
		String str4=String.join("/","S","M","L");
		System.out.println(str4);
//		str2=str2.substring(0,3)+"!";此段代码是下两行代码的整合
		//修改字符串,先提取字符串,然后再对字符串进行拼接
		str2=str2.substring(0,3);
		str2=str2+"!";
		System.out.println(str2);
		//字符串比较,调用equals方法,不能使用==运算符。
		System.out.println(str2.equals(str3));
		System.out.println("hello".equals(str1));
		//equalsIgnoreCase方法检测字符串是否相等而忽略大小写
		System.out.println("Hello".equalsIgnoreCase(str1));
		//空串和null串的判断
		str3="";
		//判断空串
			System.out.println(str3.length()==0);
			System.out.println(str3.equals(""));
			//判断null串
			System.out.println(str3==null);
			//查看字符串长度
			System.out.println(str2.length());
			//查看字符串的实际长度,即码点数量
			System.out.println(str1.codePointCount(0, str1.length()));
			//查看位置为3的代码单元
			System.out.println(str1.charAt(3));
			System.out.println();
			//获得第i个码点;外部方法获得给定位置的码点,
//内部方法获得从零开始位移1后的码点索引
			System.out.println(str1.codePointAt(str1.offsetByCodePoints(0, 1)));
			//遍历字符串,并且依次查看每一个码点
			int i=0;
			int cp=str1.codePointAt(i);
			if(Character.isSupplementaryCodePoint(cp)) {
				i+=2;
			}else {
				i++;
			}
			
			//在遍历过程中实现回退操作
			i--;
			System.out.println(str1.codePointAt(i));
			if(Character.isSurrogate(str1.charAt(i))) {
				i--;
			}
			System.out.println(str1.codePointAt(i));
			//使用codePoints方法,生成int值的流,每个int值的对应一个码点,
//将它转换为一个数组后再对数组遍历。
			int [] codePoints=str1.codePoints().toArray();
			for(int c:codePoints) {
				System.out.println(codePoints);
			}
			//将一个码点数组转换为一个字符串
			String str5=new String(codePoints,0,codePoints.length);
			System.out.println(str5);
			String str="e";
			System.out.println(str);
			//按照字典顺序,如果字符串位于e之前,返回负数,位于之后返回一个正数,相等返回零。
			System.out.println(str1.compareTo(str));
	}

}

参考文献:

(美)凯S.霍斯特曼著;周立新等译、《Java核心技术 卷一》北京:机械工业出版社 2016年9月第一版(原书第十版)45-50页

---------------------------------------------------------------------------------------------------------------------------------

本文为原创文章,转载请注明出处!!

https://blog.csdn.net/featureA/article/details/123476271https://blog.csdn.net/featureA/article/details/123476271

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762659.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号