Java学习笔记-String类

  • Java学习笔记-String类


  • 声明字符串

String str;

String:指定该变量为字符串类型  str:字符串变量名


  • 创建字符串

(1)String(char str[])

(2)String(char str[],int offset,int length)

           offset:在字符串数组中开始截取字符串的位置   length:截取长度

(3)引用字符串常量来创建字符串变量

           注:引用相同字符串常量,两个字符串对象会具有相同实体(内存空间相同)

        //(1)String(char str[])
		char a[]= {'g','o','o','d'};
		String str1=new String(a);
		//equal to String str1=new String("good");
		
		//(2)String(char str[],int offset,int length)
		char b[]= {'s','t','u','d','e','n','t'};
		String str2=new String(b,2,4);
		//equal to String str2=new String("uden");
		
		//(3)
		String str3,str4;
		str3="hello";
		str4="hello";
		//引用相同字符串常量,所以str3,str4具有相同实体(内存空间相同)

  • 串的连接

通过“+”运算符,可实现串的各种连接

(1)串之间的连接

(2)串与其他数据类型相连:这些基本类型会直接转变成字符串

            注:括号具有转换优先级,优先转换括号内容变成字符串

(3)应用:相连的字符串不能分开两行,若分开,用“+”连接两行的字符串

//连接字符串
		String Connect_Str=str1+str2;
		System.out.println(Connect_Str);
		//good+uden=gooduden
		
		//应用,相连字符串不能分开两行写,若要分开,可用+连接两行的字符串
		System.out.println("I am a good Java "+
				 "master");
		//or
		System.out.println("I am a good Java "
				 +"master");
		
		
		//字符串可同其他基本数据类型进行连接,这些基本数据类型会直接转变为字符串
		double Java_Zz=48.36;
		
		String str5="I am "+Java_Zz;
		System.out.println(str5);
		//上两句等价于
		System.out.println("I am "+Java_Zz);
		
		//括号优先级高于转换
		double Next_Num=18.3;
		System.out.println("I am "+(Java_Zz+Next_Num));
		//先完成括号内的数据运算

  • 获取字符串信息

(1)获取字符串长度:length()-返回字符串长度

//获取字符串长度
		String str6="I am a good boy";
		int Len=str6.length();

(2)字符串查找:

  a. str.indexOf(String s) -返回参数字符串s在指定字符串str中第一次出现的位置,检索不到返回-1

  b.str.lastIndexOf(string s)-返回参数s在字符串str中最后一次出现的的位置,检索不到返回-1

   注:如果两个方法的参数为""(没有空格)indexOf返回0,lastIndexOf返回字符串长度

           字符串的检索位置范围:  0~length()-1

  c.str.charAt(int index)-查看字符串str中索引位置为index的字符  index范围:0~length()-1

//字符串查找
		String str7="good good study";
		int Index1=str7.indexOf("good");
		System.out.println(Index1);	//running result: 0
		
		int Index2=str7.lastIndexOf("good");
		System.out.println(Index2);  //running result: 5
		
		//如果lastIndexOf方法中的参数是""(没有空格) 那么返回结果为字符串的长度
		int Index3=str7.lastIndexOf("");
		System.out.println(Index3);   //running result: 15
		
		//indexOf返回0
		int Index4=str7.indexOf("");
		System.out.println(Index4);
		
		//获取指定索引位置的字符,str.charAt(int index)     index>=0&&index<=Length()-1
		String str8="day day out";
		char One_char=str8.charAt(5);
		System.out.println("字符串str8中索引位置5的字符为  "+One_char);
		//C++中string类重载了[],但java没有
		

  • 获取子字符串

(1)str.substring(int beginIndex):从某索引位置开始截取字符串

(2)str.substring(int beginIndex,int endIndex) 某索引位置开始截取直到索引结束位置endIndex-1) 

//获取子字符串 str::substring
		//str.substring(int beginIndex),从某索引位置开始截取字符串
		String str9="I love ACM";
		System.out.println(str9.substring(2));   //running res: love ACM
	
		//str.substring(int beginIndex,int endIndex)  //从某索引位置开始截取直到索引结束位置,endIndex-1 !!!
		String Part_str=str9.substring(2, 5);
		System.out.println(Part_str);		//running res:	lov

  • 除去字符串空格

(1)str.trim()-去除字符串前导尾部空格

//去除字符串前导和尾部空格,str.trim()
		String str10=" I am your father ";
		String Res_str=str10.trim()	;
		System.out.println(Res_str);
		System.out.println(Res_str.length()+" before: "+str10.length()); //16 before: 18

  • 字符串替换

(1)str.replace(char OldChar,char NewChar) -将字符串中的OldChar字符替换成NewChar,如果字符串中没有该字符,返回原字符串

    注:若要替换的字符在字符串中存在多个,那么replace会将该字符全部替换成取代字符

//替换字符串中某个字符 str.replace(char OldChar,char NewChar) 将字符串中的OldChar字符替换成NewChar,如果字符串中没有该字符,返回原字符串
		String str11="SCU is a super school";
		String New_str=str11.replace('C', 'Z');
		System.out.println("after replace: "+New_str);    //running res:after replace: SZU is a super school
		
		//若要替换的字符在字符串中存在多个,那么replace会将该字符全部替换成取代字符

(2)String str.toLowerCase()  :将字符串中的大写字符转换成小写

(3)String str.toUpperCase()  :将字符串中的小写字符转换成大写

   返回类型为字符串,字符串中不存在需要转换字符,返回原串,否则返回转换后的字符串

        String str20="Remember Me";
		System.out.println(str20.toUpperCase());	//REMEMBER ME
		System.out.println(str20.toLowerCase());	//remember me

  • 判断字符串的开始与结尾

(1)boolean startsWith(String prefix)-字符串prefix是指定字符串的开头部分则返回true

(2)boolean endsWith(String suffix)-字符串suffix是指定字符串的结尾,返回true

//判断字符串的开头和结尾   boolean startsWith(String prefix)    boolean endsWith(String suffix)
		String str12="I miss you";
		String str13="but I have no breave to tell you";
		boolean flag1=str12.startsWith("I");
		boolean flag2=str12.startsWith("miss");
		boolean flag3=str13.endsWith("tell");
		boolean flag4=str13.endsWith("you");
		System.out.println("字符串str12是以“I”开头的吗?"+flag1);
		System.out.println("字符串str12是以“miss”开头的吗?"+flag2);
		System.out.println("字符串str13是以“tell”结尾的吗?"+flag3);
		System.out.println("字符串str13是以“you”结尾的吗?"+flag4);
		/*	字符串str12是以“I”开头的吗?true
			字符串str12是以“miss”开头的吗?false
			字符串str13是以“tell”结尾的吗?false
			字符串str13是以“you”结尾的吗?true	*/

  • 判断字符串是否相等

(1)boolean equals(String otherstr) 具有相同字符长度,返回true

(2)boolean equalsIgnoreCase(String ontherstr) :在equals()的基础上忽略大小写因素

//字符及长度比较
        String str15="abcD";
		String str16="abcd";
		String str17="abcD";
		System.out.println("str15 equals str16? "+str15.equals(str16));   //str15 equals str16? false
		System.out.println("str15 equals str17? "+str15.equals(str17));	//str15 equals str17? true
		System.out.println("str15 equalsIgnoreCase str16? "+str15.equalsIgnoreCase(str16));	//str15 equalsIgnoreCase str16? true

(3)int str.compareTo(String otherstr) 按字典序比较字符串

             str字典序小于otherstr 返回-1

             str字典序大于otherstr 返回1

             str字典序等于otherstr 返回0

//字典序比较
        String str18="a";
		String str19="b";
		System.out.println(str18.compareTo(str19));  //-1
		System.out.println(str19.compareTo(str18));	//1

  • 字符串分割

对字符串按指定的分割字符字符串对内容进行分割,并将分割后的结果存放在字符串数组

(1)str.split(String Sign)

(2)str.split(String Sign,int Limit) 

Sign为分割字符串的分割符 ,如果要定义多个分割符 用符号“|”隔开  e:,|=   表示分割符,和 =

limit 为分割次数

        //字符串分割
        String str21="What,Can,I,Do,Will,Refind,Your,Heard";
		String strArray1[]=str21.split("\\,");
		String strArray2[]=str21.split("\\,",4);		
		for(String s:strArray1) {
			System.out.print("["+s+"]");
		}
		System.out.println();
		for(String s:strArray2) {
			System.out.print("["+s+"]");
		}
		System.out.println();
		
		
	//运行结果
    /*  [What][Can][I][Do][Will][Refind][Your][Heard]
        [What][Can][I][Do,Will,Refind,Your,Heard]    */

记录3-8月的丧

想煽情写长文却回头一篇学习笔记

或许这才是逃离方式吧

猜你喜欢

转载自blog.csdn.net/SZU_Crayon/article/details/81277162