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月的丧
想煽情写长文却回头一篇学习笔记
或许这才是逃离方式吧
还没有评论,来说两句吧...