栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java:String类学习笔记

Java 更新时间:发布时间: 百科书网 趣学号
字符串的创建
String a="123456789";//直接赋值
String b=new String("123456");//利用构造方法
char array={'1','2','3','4','5'}; 
String c=new String(array);//利用字符数组
String d=new String(array,3,2);//从索引3的位置截取2个字符 d="45";
字符串连接
String a="CR7 ";
String b="is ";
a+=b;
System.out.println(a+"a legend!");

利用"+"、"+="即可实现拼接,输出“CR7 is a legend!”

String a="CR7 ";
String b="is ";
a=a.concat(b);
System.out.println(a+"a legend!");

还可以利用String自带的concat()方法实现将b拼接到a结尾的功能,同样输出“CR7 is a legend!”

连接其他数据类型

只要"+"运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串形式。

int champions=5;
float age=36.5f;
System.out.println("CR7 is "+age+" years old,has "+champions+" European Champions");

输出“CR7 is 36.5 years old,has 5 European Champions”.

字符串在计算公式的先后顺序影响计算结果:

String a="1"+2+3+4;
String b=1+2+3+"4";
String c="1"+(2+3+4);
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);

输出:a=1234
b=64
c=19

提取字符串信息

str.length(); 获取字符串长度
str.charAt(index)获取index位置的字符
a.indexOf('substr')返回搜索的字符或字符串在字符串中首次出现的位置,没有检索到返回-1

String a="Cristiano Ronaldo";
System.out.println("a的长度是"+a.length());
System.out.println("a的第二个字符是"+a.charAt(2));
System.out.println("o R首次出现的位置是:"+a.indexOf("o R"));	
System.out.println("iii首次出现的位置是:"+a.indexOf("iii"));

输出:a的长度是17
a的第二个字符是i
o R首次出现的位置是:8
iii首次出现的位置是:-1

判断字符串首尾内容

str.startsWith("prefix")判断字符串是否以指定的前缀开始
str.endsWith("suffix")判断字符串是否以指定后缀结束
两个函数的返回值都是boolean类型

String str[]={"iphone5s","Mi8","Mi10","iphone8","SumSung 10","iphoneX"};
int Mi=0;
nt iphone5s=0;
for(int i=0;i 

输出:the number of Mi is 2
the number of iphone5s is 1

获取字符数组

str.toCharArray();toCharArray()方法可以将字符串转换为一个字符数组。

String a="Ronnie";
int[] c=new int[] {};
char[] ch=a.toCharArray();
for(int i=0;i 

输出:字符数组第1个元素为R
字符数组第2个元素为o
字符数组第3个元素为n
字符数组第4个元素为n
字符数组第5个元素为i
字符数组第6个元素为e

判断子字符串是否存在

str.contains(string);判断字符串中是否包含指定内容。

String a="The best football players in the world:C.Ronaldo,Messi,Lewandowski,De Bruyne and van Dijk.";
System.out.println(a);
boolean is=a.contains("C.Ronaldo");
System.out.println("C.Ronaldo是世界最佳之一吗?"+is);
is=a.contains("Griezmann");
System.out.println("Griezmann是世界最佳之一?"+is);

输出:The best football players in the world:C.Ronaldo,Messi,Lewandowski,De Bruyne and van Dijk.
C.Ronaldo是世界最佳之一吗?true
Griezmann是世界最佳之一?false

字符串操作 截取字符串

str.substring(begin);
str.substring(begin,end);substring方法返回一个新字符串,截取从begin到end-1处的字符。

String a="The best football players in the world:C.Ronaldo,Messi,Lewandowski,De Bruyne and van Dijk.";
String str=a.substring(4);
System.out.println(str);
str=a.substring(4,25);
System.out.println(str);

输出:best football players in the world:C.Ronaldo,Messi,Lewandowski,De Bruyne and van Dijk.
best football players

字符串替换

str.replace("oldstr", "newstr");replace()方法将指定的字符序列替换成新的字符序列。

String str="鹤丁凫渚,穷岛屿之萦回";
String restr=str.replace("丁", "汀");
System.out.println("修改前:"+str);
System.out.println("修改后:"+restr);

输出:修改前:鹤丁凫渚,穷岛屿之萦回
修改后:鹤汀凫渚,穷岛屿之萦回

字符串分割

str.split(regex);split()方法根据给定的分隔符拆分字符串,返回一个字符串数组。

String str="蒸羊羔、蒸熊掌、蒸鹿尾、烧花鸭、烧雏鸡、烧子鹅、炉猪、炉鸭、酱鸡、腊肉、松花小肚";
String[] devide=str.split("、");
for(int i=0;i 

输出:第0组是;蒸羊羔
第1组是;蒸熊掌
第2组是;蒸鹿尾
第3组是;烧花鸭
第4组是;烧雏鸡
第5组是;烧子鹅
第6组是;炉猪
第7组是;炉鸭
第8组是;酱鸡
第9组是;腊肉
第10组是;松花小肚

大小写转换

toLowerCase():将字符串中所有字符转换为小写;
toUpperCase():将字符串中所有字符转换为大写。

String s="abc DEF";
System.out.println(s.toLowerCase());
System.out.println(s.toUpperCase());

输出:abc def
ABC DEF

去处空白内容

str.trim():trim()方法将字符串首尾处的空白内容都删除。

String s="         abcdefg         ";
String alter=s.trim();
System.out.println("s=["+s+']');
System.out.println("alter=["+alter+']');

输出:s=[ abcdefg ]
alter=[abcdefg]

比较字符串是否相等

a.equals(str):比较两个字符串对象内容是否相等,当且仅当进行比较的字符串str不为null,且与a内容相同时,结果才为true。

String str1="Java";
String str2=new String("Java");
String str3=new String("C++");
String str4=str2;
System.out.println("str1==str2:"+(str1==str2));
System.out.println("str1==str3:"+(str1==str3));
System.out.println("str1==str4:"+(str1==str4));
System.out.println("str1.equals(str2):"+str1.equals(str2));
System.out.println("str1.equals(str3):"+str1.equals(str3));
System.out.println("str1.equals(str4):"+str1.equals(str4));

输出:str1== str2:false
str1== str3:false
str1==str4:false
str1.equals(str2):true
str1.equals(str3):false
str1.equals(str4):true
注意:虽然str1和str2内容一样,但堆中已经有str1指向的内容为“Java”的字符串,str2实际指向“Java”字符串在堆中的一个副本,副本有自己的地址,所以我们需要利用方法比较字符串内容。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273260.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号