String类常见用法的实例

package com.iiover.demo;

import javax.swing.text.StyledEditorKit.BoldAction;

public class stringdemo2 {

	public static void main(String[] args) {
		String s1 = "abcdef";
		String s2 = "abcdefjhi";
		String s3 = "abcdefk";
		// 获取字符串中指定位置的字符
		System.out.println("输出s1第5位的: " + s1.charAt(5));

		// 比较两个字符串大小,如果两个字符串的字符序列相等,则返回0,不相等时,
		// 从两个字符串第0个字符开始比较,返回第一个不相等的字符差。
		// 如果较长的字符串的前面部分与较短的字符串一样,则返回他们的长度差。
		System.out.println(s2.compareTo(s1)); // 返回3
		System.out.println(s2.compareTo(s3)); // 返回 -1

		System.out.println("concat的用法--拼接: " + s1.concat(s3));

		// 将该String对象转换成byte数组。
		String str = "abcd";
		byte[] data = str.getBytes();
		// 数组的长度
		System.out.println("数组的长度: " + data.length); // 4
		// 第0位存储的内容
		System.out.println("第0位存储的内容" + (char) data[0]); // a

		/**
		 * 将该String对象与StringBuffer对象sb进行比较,当他们包含的字符序列相同时返回true。
		 * */
		String str1 = "amrood admin";
		String str2 = "amrood admin";

		StringBuffer strbuf = new StringBuffer(str1);
		System.out.println("返回值 : " + str2.contentEquals(strbuf));// true

		str2 = str1.toUpperCase();
		System.out.println("返回值 : " + str2.contentEquals(strbuf));// false

		/**
		 * tatic String copyValueOf(char[] data,int offset,int
		 * count):将char数组的子数组中的元素连缀成字符串, 与String(char[] value,int offset,int
		 * count)构造器功能相同。
		 * */
		char[] charArr = { 'C', 'O', 'M', 'P', 'I', 'L', 'E', 'A', 'O', 'N',
				'L', 'I', 'Z', 'E' };
		// 8, 6 从下标为8的开始 选取6个组成字符串
		String str3 = String.copyValueOf(charArr, 8, 6);
		System.out.println("从下标为8的开始 选取6个组成字符串:"+str3);// ONLIZE

		/**
		 * 将字符数组组成一个字符串,与构造器String(char[] content)功能相同。
		 */

		char[] arr = new char[] { 'M', 'I', 'U', 'I' };
		String str4 = String.copyValueOf(arr);
		System.out.println("字符串的拼接:" + str4);

		/**
		 * boolean endsWith(String str):返回String对象是否以str字符串结尾。
		 * */

		String str5 = new String("钓鱼岛是中国地");
		// 返回值为boolean类型
		System.out.println("【正确的】返回结果为 = " + str5.endsWith("中国地"));

		System.out.println("【错误的】返回结果为 = " + str5.endsWith("日本地"));

		/**
		 * boolean equals(Object anObject):将该字符串与指定对象进行比较,
		 * 如果二者包含序列相等则返回true,否则返回false。
		 * */
		String str6 = "MIUI";
		String str7 = "EIUI";
		System.out.println("MIUI和EIUI的equals比较: " + str6.equals(7));

		/**
		 * boolean equalsIgnoreCase(String str):将字符串与指定的对象进行比较,
		 * 二者包含序列相同则返回true,否则返回false。只是该方法忽略大小写。
		 * */

		String str8 = "root";
		String str9 = "admin";
		String str10 = "ADMIN";

		boolean retval1 = str9.equalsIgnoreCase(str8);
		System.out.println("admin equal thankyou = " + retval1);

		boolean retval2 = str9.equalsIgnoreCase(str10);
		// 只是该方法忽略大小写
		System.out.println("admin equal ADMIN = " + retval2);

		/**
		 * byte[] getBytes():将该String对象转换成byte数组。
		 * */

		String st = "abcd";
		// String对象转换成byte数组
		byte[] dat = st.getBytes();
		System.out.println("数组的长度" + dat.length); // 4
		System.out.println("数组0下标的值为: " + (char) dat[0]); // a

		/**
		 * void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):
		 * 该方法将字符串中从srcBegin开始到srcEnd结束的字符复制到dst字符数组中,
		 * 其中dstBegin为目标字符数组的要拷贝的起始位置。
		 * */
		char[] c1 = { '我', '们', '爱', '北', '京', '啊' };
		String st1 = "济南好";
		/**
		 * 0,2代表在字符串中从0开始到2结束的字符复制到c1的数组中,最后一个3代表从c1数组的第三位粘贴字符串
		 * */
		st1.getChars(1, 2, c1, 3);
		System.out.println(c1);

		/**
		 * 
		 * int indexOf(int ch):找出ch字符在该字符串中第一次出现的索引位置。
		 * */
		String ind = "aopqsizdes";
		int a = ind.indexOf('z');
		System.out.println("在字符串【aopqsizdes】【z】第一次出现的索引位置" + a);

		/**
		 * int indexOf(int ch,int fromIndex)找出ch字符在该字符串中从fromIndex索引后面第一次出现的位置。
		 * */
		String st3 = "你的好我们也好,他也好";
		System.out.println("第一次出现的的索引位置:" + st3.indexOf('好'));
		System.out.println("索引后面第一次出现的位置:" + st3.indexOf('好', 3));

		/**
		 * int indexOf(String str):找出str子字符串在该字符中第一次出现的位置。
		 * */
		String st4 = "Collections of tutorials at tutorials point";

		System.out
				.println("tutorials在Collections of tutorials at tutorials point中第一次出现的位置:"
						+ st4.indexOf("tutorials")); // 15
		// 若是无法匹配到的字符串则返回值为-1
		System.out.println("无法匹配的字符串为:" + st4.indexOf("bucunzaidezifuchuan")); // -1

		/**
		 * int indexOf(String str,int fromIndex):
		 * 找出str子字符串在该字符串中从fromIndex索引后第一次出现的位置。
		 * */

		String minzu = "中华民族是一个56个民族的总称!";
		// 第一次出现的位置
		System.out.println("第一次出现的位置:" + minzu.indexOf("民族"));
		System.out.println("在该字符串中从fromIndex索引后第一次出现的位置:"
				+ minzu.indexOf("民族", 3));

		/**
		 * int lastIndexOf(int ch):找出ch字符在该字符串中最后一次出现的位置。
		 * */

		String last = "Collections of tutorials at tutorials point";

		System.out
				.println("tutorials在Collections of tutorials at tutorials point中最后一次出现的位置:"
						+ last.lastIndexOf("tutorials")); // 15
		// 若是无法匹配到的字符串则返回值为-1
		System.out.println("无法匹配的字符串为:"
				+ st4.lastIndexOf("bucunzaidezifuchuan")); // -1

		/**
		 * int lastIndexOf(int ch,int fromIndex):
		 * 找出ch字符在该字符串中从fromIndex开始最后一次出现的位置。
		 * */

		String minzutwo = "中华民族是一个56个民族的总称!";
		System.out.println("最后一次出现的位置为: " + minzutwo.lastIndexOf('民'));// 10
		System.out.println(minzutwo.lastIndexOf('民', 3));

		/**
		 * String replace(String oldChar,String newChar):
		 * 将字符串中的所有的oldChar替换成newChar。
		 * */

		String repstr = "The quick brown fox jumps over the lazy dog.";

		String newStr = repstr.replace('d', 'l');

		System.out.println("替换前的字符串: = " + repstr);
		System.out.println("替换后的字符串: = " + newStr);

		/**
		 * String replaceAll(String regex, String replacement): 使用给定的
		 * replacement 替换此字符串所有匹配给定的正则表达式regex的子字符串。
		 * 个人理解:替换一个字符串中的某一个字符串,出现几个替换几个。
		 * */

		String msg = "你好,我也好,大家好才是真的好";
		String oldChar = "你好";
		String newChar = "伱好";
		msg = msg.replace(oldChar, newChar);
		System.out.println("原字符串:" + msg);
		oldChar = "好";
		newChar = "坏";
		msg = msg.replaceAll(oldChar, newChar);
		System.out.println("replaceAll替换后的字符串:" + msg);

		/**
		 * char[] toCharArray():将该字符串对象转换成字符数组。
		 * */

		String tcastr = "Java was developed by James Gosling";
		char retval[] = tcastr.toCharArray();
		System.out.println("转换为char数组的长度: " + retval.length);
		System.out.println(retval);

		/**
		 * String toLowerCase():将字符串转换成小写。
		 * */
		String tlcstr = "AOPDESCAVDEPck";
		String newtlcstr = tlcstr.toLowerCase();
		// 小写的输出的还是小写
		System.out.println("大写的字符串转换成小写的:" + newtlcstr);

		/**
		 * String toUpperCase():将字符串转换成大写。
		 * */

		String tucstr = "ckasdbihjdvbdsjfghAPP";
		String newtucstr = tucstr.toUpperCase();
		// 大写的输出的还是大写
		System.out.println("小写的字符串转换成大写的:" + newtucstr);

		/**
		 * String[] split(String reg):将字符串按照指定的正则表达式进行拆分。
		 * 1、如果用“.”作为分隔的话,必须是如下写法,
		 * String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
		 * 2、如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split ("|");
		 * “.”和“|”都是转义字符,必须得加"\\";
		 * 3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");
		 * 使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。*/

		String[] aa = "aaa|bbb|ccc".split("\\|");
		for (int i = 0; i < aa.length; i++) {
			System.out.println("【|】分割: " + aa[i]);

		}

	    String[] bb = "aaa*bbb*ccc".split("\\*");
	    for (int i = 0 ; i <bb.length ; i++ ) {

	      System.out.println("【*】分割:"+bb[i]); 

	    }
	    
	    String[] cc = "adpafgcadpsdlmj".split("d");
	    for (int i = 0 ; i <cc.length ; i++ ) {

	      System.out.println("【字母分隔实例】分割:"+cc[i]); 

	    }
	    
	    
	    String[] dd = "18763769758".split("7");
	    for (int i = 0 ; i <dd.length ; i++ ) {

	      System.out.println("【数字分隔实例】分割:"+dd[i]); 

	    }
	    
	    
	    /**
	     * String subString(int index):从指定的索引的位置开始直到字符串结束位置,
	     * 将其作为字符串进行返回。
	     * */
	    String subgstr = "you are my soon";
	    String subgstr2 = "";
	    //注意:从索引为3的开始截取到字符串的结束,本例子索引为4的位置为空格,输出含有空格
	    subgstr2 = subgstr.substring(3);
	    System.out.println("索引为3的开始截取到字符串的结束:"+subgstr2);
	    
	    
	    /**
	     *String subString(int beginIndex,int endIndex)
	     * 从指定的索引的位置开始直到字符串结束位置,将其作为字符串进行返回。
	     * */
	    String sbsstr = "This is tutorials point";
	    String substr = "";
	    
	    //从索引为7的位置开始到到字符串17的位置结束 注意输出有一个空格(8的位置为空格)
	    substr = sbsstr.substring(7, 17);
	    System.out.println("从索引为7的位置开始到到字符串17的位置结束 注意输出有一个空格(8的位置为空格)="+substr);

	    //从索引为0的位置开始到到字符串7的位置结束
	    substr = sbsstr.substring(0, 7);
	    System.out.println("从索引为0的位置开始到到字符串7的位置结束="+substr);
	    

		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟叮咚糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值