黑马程序员_<<String类>>
来源:互联网 发布:ubuntu安装英文输入法 编辑:程序博客网 时间:2024/05/16 15:36
--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
1. String类
1.概述
String是一个特殊的类,一旦被初始化,那么就不能被改变,String类是一个被final修饰的类。
2.String的初始化
String s1=”abc”;这个表示的是一个对象,但是不是在内存中创建的,而是在内存的缓冲区(常量池)中创建了一个“abc”对象,只有通过new关键字创建的,才在堆中申请了内存空间,并且在栈中有声明的变量名称。
当有Strings1=”abc”,String s2=”abc”;都执行的话,当执行了s1后,会在内存的缓冲区(常量池)中创建了”abc”字符串对象,然后在执行s2的时候,那么先去内存缓冲区查找,要是存在了,那么就直接指向此对象,直接使用,所以,这两句话也就纯创建了一个”abc”字符串。
String str=new String(“xyz”);这是创建了两个对象,一个是先在内存中通过new创建了一个对象,然后在内存缓冲区中又创建了一个字符串“xyz”,然后在内存中的指向了内存缓冲区(常量池)中的对象。
在常量池中只有一个相等的字符串,但是在内存中可以有多个相等的字符串。
3.一道面试题
String str=new String(“xyz”);此语句产生几个对象,
如果常量池中已经有“xyz”字符串的话,那么就产生一个对象,要是常量池中没有”xyz”,那么就产生两个对象,一个是咋内存中,一个是在常量池中(内存缓冲区)
2. 字符串比较
有两种比较方法:==和equals。
==:比较的是内存地址,equals比较的内容
public class Text { public static void main(String[] args) { String s1 = "abc"; String s2 = "abc"; String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(s1 == s2);// true 地址相等 System.out.println(s1.equals(s2));// true 内容相同 System.out.println(str1 == str2);// false 地址不相等 System.out.println(str1.equals(str2));// true 内容相同 System.out.println(s1 == str2);// false 地址不相等 System.out.println(s1.equals(str2));// true 内容相同 }}
3. 获取
下面举了一些常用的方法,这些方法还有很多重载的,小想查看全面的,请查看API文档 java.lang.String包,里面方法很全
public class getString { public static void main(String[] args) { String str = "abcdasdfgh"; // 获取长度 System.out.println(str.length()); // 通过位置获取字符 System.out.println(str.charAt(3)); // 通过字符获取位置 System.out.println(str.indexOf('d'));// 从首位置开始查找,第一个字符d System.out.println(str.indexOf('d', 5));// 从位置5开始查找,遇到的第一个字符d // 获取子字符串的位置 System.out.println(str.indexOf("asd"));// 获取字符串asd在str中的位置 } }结果:10d364
4. 判断
下面举了一些常用的判断方法,还有很多重载和其他的方法都不一一举例了,有疑问参考API文档
public class judgeString { public static void main(String[] agrs) { String str = "zhangsan.java"; // 判断字符串是否为空 System.out.println(str.isEmpty());// false // 判断字符串是否包含某内容 System.out.println(str.contains("."));// true // 判断字符串是否是以指定前缀开始 System.out.println(str.startsWith("zhang"));// true // 判断字符串是否是以指定后缀结束 System.out.println(str.endsWith(".java"));// true }}
5. 转换
1.将字符数组转换成字符串
构造函数:String(char [] values); String(char []values,start,end);将一部分字符数组转换成字符串
Static String copyValuesof(char [] );
2.将字符串转换成字符数组
toChatArray();
3.将字节数组转换成字符换
String(byte [] ); String(byte []values,start,end);
4.将字符串转换成字节数组
getBytes();
5.将基本数据类型转换成字符串
valuesOf(int a);
public class ZhuanString { public static void main(String[] args) { String str="abcdef"; char [] cs={'h','e','l','l','o'}; //将字符串转换成字符数组 char [] newcs=str.toCharArray(); //将字符数组转换成字符串 System.out.println(new String(cs)); //将字符串转换成字节数组 byte [] bs=str.getBytes(); //将字节数组转换成字符串 System.out.println(new String(bs)); //将基本数据类型转换成字符串 System.out.println(String.valueOf(4)); } }
6. 分割,替换,截取
public class Text { public static void main(String[] args) { String str="zhangsan,lisi,wangwu"; //分割 String [] ss=str.split(","); for(String t:ss) System.out.print(t+" "); //替换 String s=str.replace('w', 'y'); String s1=str.replace("zhangsan", "sa"); //截取 String s3=str.substring(4); String s4=str.substring(2,8); System.out.println("\ns="+s); System.out.println("s1="+s1); System.out.println("s3="+s3); System.out.println("s4="+s4); }} 结果: zhangsanlisi wangwus=zhangsan,lisi,yangyus1=sa,lisi,wangwus3=gsan,lisi,wangwus4=angsan
7.去除空格,大小写转换,比较
public class Text { public static void main(String[] args) { String str=" abc "; //取出两边空格 String s1=str.trim(); //大小写转换 String s2=s1.toUpperCase();//转换成大写 String s3=s2.toLowerCase();//转换成小写 //比较 System.out.println("s1="+s1); System.out.println("s2="+s2); System.out.println("s3="+s3); System.out.println(s2+"和"+s3+"比较大小="+s2.compareTo(s3)); //比较的时候是根据字符的ASCII进行的比较 //小于0表示s2小于s2 //等于0 表示s2和s3相等 //大于0 表示s2比s3大 }}结果:s1=abcs2=ABCs3=abcABC和abc比较大小=-32
- 黑马程序员_<<String类>>
- 黑马程序员_多线程和String类
- 黑马程序员_学习笔记String类
- 黑马程序员_字符串String
- 黑马程序员_<<String练习>>
- 黑马程序员 _ java基础_之String类
- 黑马程序员_十 【String】【StringBuffer】【基本数据包装类】
- 黑马程序员_温习String类(个人笔记)
- 黑马程序员_常用类String&StringBuffer&Math&Random等等
- 黑马程序员_学习笔记第13天 String类
- 黑马程序员_常用API之String类
- 黑马程序员_关于String的学习
- 黑马程序员_字符串String 与StringBuffer
- 黑马程序员_类
- 黑马程序员-String类
- 黑马程序员---String类
- 黑马程序员---String类
- 黑马程序员-String类
- input输入子系统分析
- 触发器
- spring security3.x学习(3)_初探过滤器机制和auto-config用法
- 免费在线转换视频格式
- C++编程总结
- 黑马程序员_<<String类>>
- Android录音及播放功能实现
- 网易游戏面试题
- VC程序采用动态链接库方式且静态链接MFC方法
- 搜索市场变局:少了云云,剩了搜狗
- Oracle Interval-Partition 解决Range分区大难题
- 13杭电warmup1 1001 Children's Day
- hdu 4747
- how to select a transparent background image in ms paint.