Java学习笔记-String类

缺乏、安全感 2022-05-18 04:06 332阅读 0赞
  • Java学习笔记-String类


  • 声明字符串

String str;

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


  • 创建字符串

(1)String(char str[])

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

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

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

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

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

  • 串的连接

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

(1)串之间的连接

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

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

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

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

  1. ## 获取字符串信息 ##

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

  1. //获取字符串长度
  2. String str6="I am a good boy";
  3. 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

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

  1. ## 获取子字符串 ##

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

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

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

  1. ## 除去字符串空格 ##

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

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

  1. ## 字符串替换 ##

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

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

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

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

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

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

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

  1. ## 判断字符串的开始与结尾 ##

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

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

  1. //判断字符串的开头和结尾 boolean startsWith(String prefix) boolean endsWith(String suffix)
  2. String str12="I miss you";
  3. String str13="but I have no breave to tell you";
  4. boolean flag1=str12.startsWith("I");
  5. boolean flag2=str12.startsWith("miss");
  6. boolean flag3=str13.endsWith("tell");
  7. boolean flag4=str13.endsWith("you");
  8. System.out.println("字符串str12是以“I”开头的吗?"+flag1);
  9. System.out.println("字符串str12是以“miss”开头的吗?"+flag2);
  10. System.out.println("字符串str13是以“tell”结尾的吗?"+flag3);
  11. System.out.println("字符串str13是以“you”结尾的吗?"+flag4);
  12. /* 字符串str12是以“I”开头的吗?true
  13. 字符串str12是以“miss”开头的吗?false
  14. 字符串str13是以“tell”结尾的吗?false
  15. 字符串str13是以“you”结尾的吗?true */

  1. ## 判断字符串是否相等 ##

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

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

  1. //字符及长度比较
  2. String str15="abcD";
  3. String str16="abcd";
  4. String str17="abcD";
  5. System.out.println("str15 equals str16? "+str15.equals(str16)); //str15 equals str16? false
  6. System.out.println("str15 equals str17? "+str15.equals(str17)); //str15 equals str17? true
  7. 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

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

  1. ## 字符串分割 ##

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

(1)str.split(String Sign)

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

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

limit 为分割次数

  1. //字符串分割
  2. String str21="What,Can,I,Do,Will,Refind,Your,Heard";
  3. String strArray1[]=str21.split("\\,");
  4. String strArray2[]=str21.split("\\,",4);
  5. for(String s:strArray1) {
  6. System.out.print("["+s+"]");
  7. }
  8. System.out.println();
  9. for(String s:strArray2) {
  10. System.out.print("["+s+"]");
  11. }
  12. System.out.println();
  13. //运行结果
  14. /* [What][Can][I][Do][Will][Refind][Your][Heard]
  15. [What][Can][I][Do,Will,Refind,Your,Heard] */

记录3-8月的丧

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

或许这才是逃离方式吧

发表评论

表情:
评论列表 (有 0 条评论,332人围观)

还没有评论,来说两句吧...

相关阅读