Java语言基础-03_JAVASE-01String

01.常用的字符串方法详解

indexOf()&&  lastIndexOf():获取字符在字符串中的位置

indexOf方法返回一个整数值,指出String对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。
如果startindex是负数,则startindex被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。

Java中字符串中子串的查找共有四种方法,如下:
1,int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引 
.2,int indexOf(String str ,int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引 
.3,int lastIndexOf(String str):返回在此字符串中最右边出现的指定子字符串的索引 
.4,int lastIndexOf(String str,int startIndex):从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

		String str = "thinking in java";
		int index = str.indexOf("in");
		System.out.println("index:" + index); //index:2

		index = str.indexOf("in", 3);
		System.out.println("index:" + index); //index:5

		// 反向查询位置lastIndexOf()从后向前查找字符/子字符串的位置, 返回起始位置
		index = str.lastIndexOf("in");
		System.out.println("index:" + index); //index:9

substring():截取子字符串

 截取子字符串String substring(int start,int end)包含起始位置,不包含结束位置,截取子字符串

		//             0123456789012
		String host = "www.baidu.com";

		// 从开始位置到结束位置(不包含结束位置)
		String sub = host.substring(4, 9);
		System.out.println(sub); //baidu

		// 从第一个参数的位置截取到末尾
		sub = host.substring(4);
		System.out.println(sub); //baidu.com

		//            01234567890123456789012345
		String url = "http://tmooc.cn/index.html";
		// 截取url中主机域名
		String host1 = url.substring(7, 15);
		System.out.println(host1);// tmooc.cn

		// substring 参数有两种用法, 一种是按照范围截取
		// 另外一种是按照长度截取子字符串
		String str = url.substring(7, 7 + 5);
		System.out.println(str); // tmooc

trim():删除空白字符

去除字符串两端的空白
空白包括:空格,回车,换行,Tab

		String str ="  he llo      ";
		System.out.println(str); //  he llo  
		String trim =str.trim();
		System.out.println(trim); //he llo

charAt():获取字符串中指定位置的字符

//			     0123456789012345
		String str ="thinking in java";
		char c =str.charAt(9);
		System.out.println(c); //i
		
		//             0 1 2 345
		String str1 = "今天学API";
		
		char ch = str1.charAt(1);
		System.out.println(ch); // 天
		
		for (int i = 0; i < str.length(); i++) {
			c =str.charAt(i);
			System.out.print(c);
		}
		System.out.println();
		
		/**
		 * 判断回文字符串
		 */
		
		str ="上海自来水来自海上;
		boolean flag =true;
		for (int i = 0; i < str.length()/2; i++) {		
			char c1 =str.charAt(i);
			char c2 =str.charAt(str.length()-1-i);
			if(c1!=c2){
				System.out.println("不是回文");
				flag =false;
				break;
			}
		}
		if(flag){
			System.out.println("是回文");
		}
		/*
		str ="上海自来水来自海上";
		boolean flag =true;
		for (int i = 0; i < str.length()/2; i++) {		
			char c1 =str.charAt(i);
			char c2 =str.charAt(str.length()-1-i);
			if(c1!=c2){
				flag =false;
				break;
			}
		}
		if(flag){
			System.out.println("是回文");
		}else{
			System.out.println("不是回文");
		}
		 */
		
		/*
		str ="上海自来水来自海上";
		for (int i = 0; i < str.length()/2; i++) {		
			char c1 =str.charAt(i);
			char c2 =str.charAt(str.length()-1-i);
			if(c1!=c2){
				System.out.println("不是回文");
				return;
				//直接结束 后面的不执行
			}
		}
		System.out.println("是回文");
		*/
		
		/*
		str ="上海自来水来自海上";
		for (int i = 0; i < str.length()/2; i++) {		
			char c1 =str.charAt(i);
			char c2 =str.charAt(str.length()-1-i);
			if(c1!=c2){
				System.out.print("不");
				break;
			}
		}
		System.out.println("是回文");
		*/

contains():判断是否包含这个字符串

        String string = "www.baidu.com";
        boolean b1 = string.contains("baidu");
        System.out.println(b1);   //结果为:true

startsWith():判断是否以这个前缀开头 && endsWith():判断是否以这个后缀结尾

        //  前缀
        boolean b2 = string.startWith("www");
        System.out.println(b2);    //结果为:true
        //  后缀  .jpg .png .jpeg判断上传得图片是否合理
        boolean b3 = string.endWith("com");
        System.out.println(b3);    //结果为:true

toUpperCase():转化成大写 && toLowerCase():转换成小写

		String str ="我爱Java";
		
		//转化成大写字符
		String upper =str.toUpperCase();
		System.out.println(upper);
		
		//转化成小写字符
		String lower =str.toLowerCase();
		System.out.println(lower);

valueOf():将给定的内容转化为字符串

         int d =1;
		String str =String.valueOf(d);
		System.out.println(str);
		
		double dou =1.1;
		str =String.valueOf(dou);
		System.out.println(str);
		
		char[] ch =new char[10];
		str =String.valueOf(ch);
		
		//加""空串 也可以转换为字符串 转换频率低时可以使用
		str =d+"";

StringBuilder():修改字符串内容

/ **
 * StringBuilder专门用来修改字符串内容的API
 * String由于其优化设计导致的问题就是不能频繁修改(每次都创建新对象)
 *测试StringBuilder的动态字符串功能可以增加改查
 *需要频繁修改字符串时用StringBuilder
 * /

insert():插入   

delete():删除   

replace():替换   

append():追加

toString():将字符数组转换成字符串

        String str ="努力学习Java";
		StringBuilder builder =new StringBuilder(str);
		// StringBuilder中默认字符数组长度为0
		System.out.println(builder.length()); //8	

		/**
		 * 努力学习Java
		 * 努力学习Java,为了找个好工作!
		 * append()功能是增加一段字符串
		 */		
		builder.append(",为了找个好工作!");
		str =builder.toString();
		System.out.println(str);
		
		/**
		 * 努力学习Java,为了找个好工作!
		 * 努力学习Java,就是为了改变世界!
		 * replace()功能是替换一段字符串
		 */
		builder.replace(9, 16, "就是为了改变世界");
		str =builder.toString();
		System.out.println(str);
		
		/**
		 * 努力学习Java,就是为了改变世界!
		 * ,就是为了改变世界!
		 * delete()功能是删除一段字符串
		 */
		builder.delete(0, 8);
		str =builder.toString();
		System.out.println(str);
		
		/**
		 * ,就是为了改变世界!
		 * 活着,就是为了改变世界!
		 * insert()功能是插入一段字符串
		 */
		builder.insert(0, "活着");
		str =builder.toString();
		System.out.println(str);

更多String介绍

你可能感兴趣的:(Java基础学习)