JAVA——基本字符操作(三)

本文详细介绍了JAVA中字符串的四种基本操作:如何将两个字符串相加,如何比较字符串是否相同,如何检查并计算子字符串在原字符串中的出现次数,以及如何替换子字符串。通过具体的代码示例,展示了equals方法、indexOf方法和replace方法的使用。

基本字符操作(三)

本文通过一些实例,介绍了与字符串有关的相加、比较、包含和替换四种操作。读者若想查阅其他类型的操作,可参考以下博客。
两个字符集合间的对比:
https://blog.youkuaiyun.com/Atishoo_13/article/details/82667128
输入、ASCII码和汉字内码的回显
https://blog.youkuaiyun.com/Atishoo_13/article/details/82628698
数值转换、字节数组转换和格式化字符串:
https://blog.youkuaiyun.com/Atishoo_13/article/details/82807865


1.使预先设定的两个字符串相加合成为一个新字符串。

  • String的长度可以是0到足够大
    代码:
public class rw16 {

	public static void main(String[] args) {
		String str1 = "投我以桃,";  // 字符串中可以中英文混合使用							
		String str2 = "报之以李。";		// 对于字符串,即使只包含一个字符,也要用双引号
		String plusStr = str1 + str2;			// 字符串可以“相加”
		System.out.println("str1:"+str1);
		System.out.println("str2:"+str2);
		System.out.println("str1+str2:"+plusStr);
	}

}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

2.操作包括两个字符串比较其是否相同。

  • String类已经提供了这么一个方法,它的名字叫做equals,方法返回值是大小写一个boolean变量。String类的equals()方法会比较两个字符串中的每个字符,如果完全相同(英文字符是区分大小写的),则返回true,否则返回false。
  • 两个引用之间也可以进行“==”运算,这个运算的意义是:当两个引用指向同一个对象或者同时为null的时候,运算结果为true;否则运算结果为false。可以用此计算符判断两个引用是否指向同一个对象。
public class rw17 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str1 = "ABCD"; 
		String str2 = "abcd" ;
		String str3 = "ABCD";
		boolean equals12 = str1.equals(str2);	// 调用equals()方法判断str1	
        // 是否和str2相等
		boolean equals13 = str1.equals(str3);	// 调用equals()方法判断str1												
		// 是否和str3相等
		System.out.println("str1:" + str1+"\nstr2:"+str2+"\nstr3:"+str3);
		System.out.println("字符串str1和字符串str2相等:" + equals12);
		System.out.println("字符串str1和字符串str3相等:" + equals13);
	}

}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

3.操作包括已知一个字符串,查找某一子字符串是否被包含在此字符串之中,如果包含,包含了多少次。

  • int length():这个方法的返回值是字符串的长度,也就是字符串中包含的字符的个数。
  • char charAt(int index):这个方法返回指定位置的字符。它的参数就是想要得到的字符所在的位置,而返回值就是出于此位置的字符。注意第一个字符的位置是0。此方法与数组相似,称之为“索引”。
    代码:
public class rw18 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Some of us get dipped in flat, some in satin, some in gloss. But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare.";
		// 需要统计的字符串
		char target = 'o';					// 需要统计的字符
		int len = str.length();				// 得到字符串的长度
		int count = 0;						// 用来保存结果的int变量
		for (int i = 0; i < len; i++) {	// 遍历字符串中的每个字符
			char ch = str.charAt(i);		// 得到字符串中的第i个字符
			if (ch == target) {				// 如果这个字符是需要统计的
				count++;					// 计数器加1
			}
		}
		System.out.println(str+"\n以上语段中包含" + count + "个\'"+ target + "\'个字符");				
		// 输出结果
	}
}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

4.操作包括已知一个字符串及其包含的某一子字符串,把此子字符串替换为其他的新的指定字符串。

判断要进行替换的字符是否存在,并需要遍历找到要替换的字符串的位置。
在替换字符串的位置上进行替换,获得替换后生成的新的字符串。

  • 本程序定义一个replace()方法,对传入的字符串line进行部分替换。运用String对象的indexOf()方法,判断是否存在要替换的子串。若不存在子串,indexOf()方法返回-1。
  • StringBuffer是字符串变量,它的对象是可以补充和修改的。StringBuffer对象的append()方法用来补充添加字符串。程序中运用while循环,当碰到替换前的字符串时,添加替换后的字符串,来达到替换的目的。

代码:

public class rw19 {
	//JAVA程序的主入口方法
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//
		String s = "Say Hi Hi best Hi.";//原字符串
		System.out.println("原字符串为:"+s);
		String y="Hi";//原词
		String h="good";//替换词
		String s1=replace(s,y,h);//调用的方法进行替换
		System.out.println("将"+y+"换为"+h+"后为:"+s1);//输出替换后的字符串
	}
	//
	public static  final String replace(String line, String oldString, String newString) {
		// TODO Auto-generated method stub
		if(!"".equals("")) { //判断字符串是否为空
		return null;
		}
		int i=0;
		if((i=line.indexOf(oldString,i))>=0) {
			char[] line2=line.toCharArray();//字符串放入数组
			char[] newString2=newString.toCharArray();//要替换的字符串
			int oLength = oldString.length();//被替换的字符串
			StringBuffer buf =new StringBuffer(line2.length);
			buf.append(line2,0,i).append(newString2);
			i += oLength;
			int j=i;
			while((i=line.indexOf(oldString,i))>0) {//while循环
				buf.append(line2,j,i-j).append(newString2);
				i +=oLength;
				j=i;
			}
			buf.append(line2,j,line2.length-j);
			return buf.toString();//返回替换后的字符串
		}
		return line;
	}

}

编译结果如下图所示:
在这里插入图片描述
运行结果如下图所示:
在这里插入图片描述

java字符操作大全,适合初学者,浅显易懂 部JAVA字符操作 2008-07-11 15:39:42| 分类: JAVA | 标签: |字号大中小 订阅 . JAVA字符串的方法 String a = "53c015"; //Integer.parseInt(s, radix) radix设置为10,表示10进制,16表示16进制啦 int i = Integer.parseInt(a, 16); 1、length() 字符串的长度   例:char chars[]={'a','b'.'c'};     String s=new String(chars);     int len=s.length(); 2、charAt() 截取一个字符   例:char ch;     ch="abc".charAt(1); 返回'b' 3、getChars() 截取多个字符   void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)   sourceStart指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制子串的下标值是targetStart。   例:String s="this is a demo of the getChars method.";     char buf[]=new char[20];     s.getChars(10,14,buf,0); 4、getBytes()   替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()。 5、toCharArray() 6、equals()和equalsIgnoreCase() 比较两个字符串 7、regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。   boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)   boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars) 8、startsWith()和endsWith()   startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束 9、equals()和==   equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。   例:String s1="Hello";     String s2=new String(s1);     s1.eauals(s2); //true     s1==s2;//false 10、compareTo()和compareToIgnoreCase() 比较字符串 11、indexOf()和lastIndexOf()   indexOf() 查找字符或者子串第一次出现的地方。   lastIndexOf() 查找字符或者子串是后一次出现的地方。 12、substring()   它有两种形式,第一种是:String substring(int startIndex)          第二种是:String substring(int startIndex,int endIndex) 13、concat() 连接两个字符串 14 、replace() 替换   它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:   String replace(char original,char replacement)   例如:String s="Hello".replace('l','w');   第二种形式是用一个字符序列替换另一个字符序列,形式如下:   String replace(CharSequence original,CharSequence replacement) 15、trim() 去掉起始和结尾的空格 16、valueOf() 转换为字符串 17、toLowerCase() 转换为小写 18、toUpperCase() 转换为大写 19、StringBuffer构造函数   StringBuffer定义了个构造函数:   StringBuffer()   StringBuffer(int size)   StringBuffer(String str)   StringBuffer(CharSequence chars)      (1)、length()和capacity()     一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。      (2)、ensureCapacity() 设置缓冲区的大小     void ensureCapacity(int capacity)   (3)、setLength() 设置缓冲区的长度     void setLength(int len)   (4)、charAt()和setCharAt()     char charAt(int where)     void setCharAt(int where,char ch)   (5)、getChars()     void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)   (6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。     例:int a=42;       StringBuffer sb=new StringBuffer(40);       String s=sb.append("a=").append(a).append("!").toString();   (7)、insert() 插入字符串     StringBuffer insert(int index,String str)     StringBuffer insert(int index,char ch)     StringBuffer insert(int index,Object obj)     index指定将字符串插入到StringBuffer对象中的位置的下标。   (8)、reverse() 颠倒StringBuffer对象中的字符     StringBuffer reverse() 分代码如下
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值