java的一些常用对字符串的操作

字符串的一些常用操作,有些我演示我没在前的文档注释上写,但代码里面是有,望大家可以自己仔细的耐心找一下,写的不是很全面望大家谅解一下, 谢谢。

如果大家找不到到的话可以去java的官方文档里面看看

[java参考文档] (https://pan.baidu.com/s/13xUSFwG7cqRDOjzMkdh6Rg)

提取码:iv3x

下面有StringBuffer跟String 的执行速度的演示。

package ZiFuChuan;

import java.util.Scanner;

public class TestString {
	
	/**
	 * 		java常用方法
	 * 			判断字符串是否为空:.isEmpty()
	 * 			比较内容:.equals()
	 * 			获取字符串的长度:.length();
	 * 			获取字符串对应索引位置的字符:.charAt()
	 * 			获取字符中从左到右出现的第一个字符的位置:.indexOf()
	 * 			从右到左:.lastIndexOf();	如果没有出现返回值是-1
	 * 			
	 * 			判断字符串中是否包含该字符:
	 * 					String hjk = "abc";
	 * 					if(indexOf("a")==-1){
	 * 							表示没有
	 * 					}else{
	 * 							否则这就是有
	 * 					}
	 * 			拼接字符串 .concat();
	 * 			忽略大小写.equalsIgnoreCase("Y")
	 * 			判断是否已123开始	.startsWith("123")
	 * 			判断是否已8结束	.endsWith("8")
	 * 			字符串转换大小写   大写:.toUpperCase()   小写:.toLowerCase()
	 * 			StringBuffer的执行时间是比String快的
	 * 			StringBuffer 拼接	sbBuffer.append("你好");
	 * 
	 * */
	
	
	
	public static void main(String[] args) {
		//属性
//		String name = "张三";
//		int age = 20;
//		double heiginht = 170.0;
		
		
		
		
		/**
		 * 创建字符串的三种方式
		 * */
		String name = "abc";
		String str = new String();
		
		System.out.println(str);
		String str3 = new String("abc");
		String name2 = "abc";
		
		System.out.println(str3 == name);
		System.out.println(str3.equals(name));
		
		System.out.println(name2 == name);
		System.out.println(name2.equals(name));
		
		//字符串中 == 判断是的是内存地址   equals 判断内容
		
		
		//isEmpty(); 判断字符串是否为空
		System.out.println("是否为空:"+name.isEmpty());
		
		System.out.println("**********************************************************");
		
		//判断字符串是否为空的三种方式
		name="";
		System.out.println("是否为空:"+name.isEmpty());
		System.out.println("是否为空:"+(name.length()==0));
		System.out.println("是否为空:"+name.equals(""));
		//执行速度 name.isEmpty()>name.length()==0>name.equals("")
		
		System.out.println("*********************************************************");
		
		//判断字符串的长度
		System.out.println("是否为空:"+name.length());
		
		System.out.println("**********************************************************");
		
		//Scanner input = new Scanner(System.in);
		System.out.println("请输入性别:");
		//获取返回值指定索引处的char值,索引范围从0开始
		//char sex = input.next().charAt(0);
		//System.out.println(sex);
		str = "123456";
		System.out.println(str.charAt(1));
		
		System.out.println("**********************************************************");
		
		System.out.println("indexOF 字符串从左侧开始查找,找到后返回第一个对应的索引位置。");
		//这里有2个b只返回第一个b后面的就不会再找了
		System.out.println("abcabc".indexOf("b"));//1
		//如果没有找到结果e,后面的返回值是-1
		System.out.println("abcabc".indexOf("e"));//-1
		
		/**
		 * 
		 * indexOf 邮箱案例
		 * indexOf 是从左侧开始找找到一个为止,不会再往后面找
		 * lastIndexOf 从右侧开始找,找到右侧开始第一个为止,不会再往后面找,
		 * 				返回的数据是从左侧开始数的。
		 * 
		 * */
		
		//邮箱格式
		String email = "123456@126.com";
		if (email.indexOf("@")==-1) {
			System.out.println("邮箱格式输入错误");
		}else {
			System.out.println("邮箱输入正确");
		}
		
		String abc = "你是我的小苹果,小呀小苹果,";
		System.out.println("indexOf:"+abc.indexOf("小"));
		System.out.println("lastIndexOf:"+abc.lastIndexOf("小"));
		
		
		System.out.println("*********************************************************");
		
		//截取字符串		截取邮箱后缀
		email = "12345@126.com";
		//.substring()从开始位置截取到结尾,而且包含开始位置
		String hz = email.substring(6);
		System.out.println(hz);//126.com
		//.substring(beginIndex,endIndex)	从beginIndex开始截取,截取到endIndex结束(前包后不包)
		String ym = email.substring(6, 9);
		System.out.println(ym);//126
		
		System.out.println("********************************************************");
		
		//替换字符串 	
		System.out.println(abc);
		String xs = abc.replace("小", "大");
		System.out.println("把小替换成大:"+xs);
		
		System.out.println("**********************************************************");
		
		//对字符串进行拆分  返回值类型 	String[];
		//把一首诗  按照“,”来换行
		String shi = "鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波";
		System.out.println("没有拆分过的:"+shi);
		String [] strings = shi.split(",");	
		//之后遍历数组
		
		for (String string : strings) {
			System.out.println(string);
		}
		
		//还有一种方法,就是直接用上面的replace()把  , 替换成  \n   \n:换行的意思
		String st2 = shi.replace(",", "\n");
		System.out.println("替换:"+st2);
		
		System.out.println("*******************************************************");
		
		//去掉两端空格	.trim()只能去掉两端的空格,但是中间的空格不能去掉
		String user = "   a  b  c   ".trim();
		System.out.println("开始"+user+"结束");
		
		System.out.println("*********************************************************");
		
		//拼接字符串.
		str = "123";
		str3 = "456";
		//平常用法
		System.out.println("平常用法:"+str+str3);
		//.concat()用法
		System.out.println(".concat()用法:"+str.concat(str3));
		
		System.out.println("***********************************************************");
		
		//忽略大小写.equalsIgnoreCase("Y")
		Scanner input = new Scanner(System.in);
		//System.out.println("请输入Y/N:");
		//String sr = input.next();
		
		//这种方式输入小写的Y/N的时候是提示输入错误的
		
		/*if (sr.equals("Y")) {
			System.err.println("继续");
		}else if (sr.equals("N")) {
			System.out.println("退出");
		}else {
			System.out.println("输入错误");
		}
		*/
		
		//而这种无论你输入的是大写还是小写都是可以的不会出现错误
		
		/*if (sr.equalsIgnoreCase("Y")) {
			System.err.println("继续");
		}else if (sr.equalsIgnoreCase("Y")) {
			System.out.println("退出");
		}else {
			System.out.println("输入错误");
		}*/
		
		System.out.println("**********************************************************");
		
		
		String phone = "123888888";
		System.out.println("是否已123开始:"+phone.startsWith("123"));
		//判断是否已8结束	.endsWith("8")
		System.out.println("是否已8结束:"+phone.endsWith("8"));
		
		System.out.println("*********************************************************");
		
		// 字符串转换大小写
		String msg="abcDefG123你好";
		System.out.println(msg.toUpperCase());
		System.out.println(msg.toLowerCase());
		
		System.out.println("**********************************************************");
		
		//StringBuffer  当对字符串进行频繁修改时使用,可以大大提高效率
		//String 转-->StringBuffer
		String sname = "abcde";
		StringBuffer sbBuffer= new StringBuffer(sname);
		//StringBuffer 转-->String
		String srString = sbBuffer.toString();
		
		//StringBuffer 拼接		.append("你好");
		//上面sbBuffer里面已经有abcde
		sbBuffer.append("你好");
		
		String srString2 = sname+"你好";
		System.out.println(sbBuffer);
		
		System.out.println(sname);//abcde   由于sbBuffer已经拼接好了,所以这时候sname还是abcde
		
		System.out.println(sbBuffer.insert(2, "你好"));//这边替换一下,在输出 sbBuffer
		System.out.println(sbBuffer);
		
		
	}

下面是对StringBuffer跟String 的执行速度的演示, StringBuffer的执行速度是比String快的,感兴趣的大家可以自己把代码运行一下

package ZiFuChuan;


public class Test {
	//StringBuffer跟String的速度演示
		public static void main(String[] args) {
			long t = System.currentTimeMillis();
			String string = "abc";
			StringBuffer sBuffer = new StringBuffer();
				for (int i = 0; i < 10000; i++) {
					//string=string+"a";
					sBuffer.append("a");
				}
				long t2 = System.currentTimeMillis();
				System.err.println(t2-t);
		}
}

posted @ 2021-06-21 18:04  IT狗子  阅读(131)  评论(0)    收藏  举报