-------http://www.itheima.comjava培训、android培训期待与您交流!-------
一、java API
1、String
String是一个类,且不能有子类(被final修饰),不可复写其功能。
字符串是一个特殊的对象,字符串一旦初始化就不能被改变。
(1)String s1 = “abc”; s1是类类型变量,一定指向abc对象。若s1=”kk”;s1只是指向了kk,而s1未变。
String s2 = new String(“abc”); s2在堆内存中有两个对象。
此时,s1==s2;是错的,比较的是对象的地址。
s1.equals(s2);是正确的,比较的是对象中的内容。
(2)字符串的操作
A、获取
String s1 = "wangtingting"; //获得字符串的长度(字符串中包含的字符数) int x = s1.length(); //根据字符串的索引(位置)获取该位置的字符 char ch1 = s1.charAt(3); //根据字符获取某个字符在该字符串中的位置(返回的是该字符第一次出现的位置) int i1 = s1.indexOf('a'); //获取从指定位置开始,该字符在字符串出现的位置 int i2= s1.indexOf('i', 6); //i字符在该字符串中第一次出现的位置 int i3 = s1.indexOf('i'); //n字符串在该字符串中第一次出现的位置 int i4 = s1.indexOf("n"); //可以索引该字符串第一次在整个字符串出现的位置,如果返回-1,则该字符串p不在整个字符串中存在 //也可用于对指定字符串判断是否存在 int i7 = s1.indexOf("p"); //n该字符串从指定位置(索引3)开始,在字符串中出现的位置(且是该字符串在指定位置后的第一次出现的位置) int i5 = s1.indexOf("n",3); //该字符在整个字符串中最后出现的位置 int i6 = s1.lastIndexOf('i'); System.out.println(i7);
B、判断
String s2 = "wangtingting"; //字符串中是否包含某一字串 boolean b1 = s2.contains("ting"); //判断字符串是否为空(字符串长度是否为0) boolean b2 = s2.isEmpty(); //判断该字符串是否是以字符串ti开头 boolean b3 = s2.startsWith("ti"); boolean b4 = s2.endsWith("ng"); //判断给出的字符串是否和s字符串相同 boolean b5 = s2.equals("wangtingting"); //判断给出的字符串是否和s字符串的内容相同,并忽略大小写 boolean b6 = s2.equalsIgnoreCase("Wangtingting"); System.out.println(b6);
C、转换
char[] arr = {'e','f','h','l','m','o','r','y'}; //使用构造函数的方法将字符数组转换成字符串 String str1 = new String(arr); //将字符数组中的一部分转换成字符串。 起始位 转换的个数 //String(char[] value, int offset, int count) String str2 = new String(arr,3,4); //str2 =arr.copyValueOf(arr); System.out.println(str2); //将字符串转成字符数组 byte[] bt = {'g','r','z','y','j','m'}; String str3 = new String(bt); System.out.println(str3.toCharArray());
D、切割和替换
public static void splitAndReplace() { //替换 String str3 = new String("wangting"); //用新字符串替代原字符串中的内容 //若替换的字符串不存在,则返回原字符串"你好" System.out.println(str3.replace("ting","shan")); //以,将字符串切割 String stri = "wangwu,lisi,zhangsan"; String[] arr1 = stri.split(","); for (int x = 0;x<arr1.length ;x++ ) { System.out.println(arr1[x]); } //默认获得的是从位置3(包含3)开始以后的子串 System.out.println(str3.substring(3)); //获取的是包含头4不包含尾7的子串 System.out.println(str3.substring(4,7)); //将字符串转换为大小写 String str4 = new String("WANGSHAN"); System.out.println(str3.toUpperCase()); System.out.println(str4.toLowerCase()); //将字符串中的空格去除 String str5 = new String(" WANGSHAN "); System.out.println(str5.trim()); //对两个字符串进行自然顺序比较 int num = str4.compareTo("hellowangting"); System.out.println(num); }
2、StringBuffer 字符串缓冲区,相当于一个容器,用于存储字符串该字符串缓冲区的 长度可以变化/可操作多个数据类型/最终会通过toString方法转变成字符串。
(1)添加
StringBuffer sb = new StringBuffer("wangtingting"); //在已有字符串的末端添加内容 System.out.println(sb.append("你好")); System.out.println(sb.append(true).append(123)); //sb和sb1指向的是同一个对象 StringBuffer sb1 = new StringBuffer("wangtingting"); System.out.println(sb==sb1);
(2)删除
//删除从start到end之间的字符,包含头,不包含尾 StringBuffer sb2 = sb.delete(4,8); //删除指定位置的字符串 StringBuffer sb3= sb.deleteCharAt(1); //清空缓冲区 StringBuffer sb4 = sb.delete(0,sb.length()); //获取4位置上的字符 char ch2 = sb.charAt(4); System.out.println(ch2);
(3)修改
StringBuffer sb0 = new StringBuffer("wangtingting"); //在1位置上插入hello这个字符串 System.out.println(sb0.insert(1,"hello")); //将字符串ting替换成字符串shan 包含头,不包含尾 System.out.println(sb0.replace(8,12,"shan")); 将字符串中的某个字符替换 sb0.setCharAt(1,'o'); System.out.println(sb0.toString());//或直接打印sb0
(4)反转
将整个字符串反转
System.out.println(sb0.reverse());
(5)将缓冲区中的指定数据存储到指定字符组中
//void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) StringBuffer strb = new StringBuffer("wangshan"); char[] chs = new char[5]; strb.getChars(4,8,chs,1); for (int x = 0;x<chs.length ;x++ ){ System.out.println("char["+x+"]="+chs[x]+";"); }
3、StringBuilder
StringBuilder也是字符串缓冲区,只是在JDK1.5版本之后出现的新特性。
StringBuffer是线程同步的
StringBuilder是线程不同步的
升级原因: 提高效率、简化书写、提高安全性
基本数据类型对象包装
基本数据类型byte、short、int、long、boolean、float、double、char对应引用数据类型Byte、Short、Integer、Long、Boolean、Float、Double、Character
将数据类型对象包装的作用:用于基本数据类型和字符串之间做转换。
基本数据类型-->字符串
System.out.println(3+" ");
System.out.println(Integer.toString(3));
字符串-->基本数据类型
int num = Integer.parseInt("123");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123"); //打印结果 123
int num2 = i.valueOf("123"); //123
System.out.println(num2);
十进制-->其他进制
System.out.println(Integer.toBinaryString(-6));
System.out.println(Integer.toHexString(60));
System.out.println(Integer.toOctalString(8));
其他进制-->十进制
//将110转换成十进制、二进制、八进制的数
System.out.println(Integer.parseInt("110",10));
System.out.println(Integer.parseInt("110",2));
System.out.println(Integer.parseInt("110",8));
基本数据类型新特性
(1)
Integer x = new Integer("123");
Integer y = new Integer(123);
System.out.println(x==y); //false
System.out.println(x.equals(y));//true
x和y的地址值不同,
但x和y指向的内容相同。
(2)
Integer x1= 4;
System.out.println(x1+2);
自动装箱:x1代表的是一个对象,是引用数据类型,由于自动装箱功能,x1可以直接这样写。
自动拆箱:x1+2 ,将类类型变量直接作为值进行运算。
----------http://www.itheima.comjava培训、android培训期待与您交流! ----------
发表评论
-
黑马程序员---IO流(2)
2013-05-30 10:03 927-------http://www.itheima.comja ... -
黑马程序员---集合框架
2013-05-19 20:10 934-------http://www.itheima.comja ... -
黑马程序员----面向对象---异常
2013-05-16 17:31 685[size=small] -------http://www. ... -
黑马程序员---面向对象---接口、多态、Object类、内部类
2013-05-23 21:48 783-------http://www.itheima.comj ... -
黑马程序员 --- 面试
2013-05-31 14:03 932-------http://www.itheima.comja ... -
黑马程序员---GUI
2013-05-30 09:14 902-------http://www.itheima.comj ... -
黑马程序员---java高新技术
2013-05-31 14:03 846-------http://www.itheima.comja ... -
黑马程序员---网络编程
2013-05-31 14:03 944-------http://www.itheima.comja ... -
黑马程序员---java基础
2013-05-16 18:20 964-------http://www.itheima.comja ... -
黑马程序员-------面向对象---概述、封装、继承、抽象类
2013-04-22 11:44 950---------------http://www.ithei ... -
黑马程序员---IO流(1)
2013-05-30 09:53 992-------http://www.itheima.c ... -
黑马程序员---多线程
2013-04-14 14:31 774... -
黑马程序员---单例设计模式
2013-04-14 14:29 776------- http:/ ... -
黑马程序员---泛型
2013-04-14 14:15 450-----http://www.itheima.comjava ...
相关推荐
简单的介绍了String、StringBuffer和StringBuilder的区别
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
String ,StringBuffer与StringBuilder的区别
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
stringbuilder用法 String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String...
String、StringBuffer 和 StringBuilder 的区别 碎碎念 简单认识这三个对象 String StringBuffer StringBuilder 深入理解 String、StringBuilder、StringBuffer 从设计角度理解 String StringBuilder StringBuffer ...
String及StringBuffer和StringBuilder的区别
string,stringbuffer,stringbuilder
string,stringBuffer,stringBuilder
BATJ面试题讲解-String、StringBuffer、StringBuilder的区别
目录StringStringBuffer与StringBuilder总结 String ...StringBuffer与StringBuilder 这两者基本相似,都是可变字符串对象,主要区别为线程是否安全。 总结 最后,引用菜鸟教程下的总结以及相关评论: S
下面小编就为大家带来一篇浅谈java中String StringBuffer StringBuilder的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
对于很多Java行业的菜鸟来说,弄清楚String;StringBuffer;StringBuilder三者之间的区别是很有必要的,很多面试面试官都会问到这个知识点。集合网络上很多牛人的各种经典分析的总结,花了两个小时概括总结得出了现在...
String,StringBuilder,StringBuffer
String、StringBuilder以及StringBuffer的区别
Java中String,StringBuffer与StringBuilder的区别和用法。
java基础--4.常用类-3.StringBuffer、StringBuilder