Java中String类以及相关的类的学习
2015-06-10 17:23
489 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
/*
=* 字符串的特点
* 1. 字符串是一个对象
* 2. 字符串是一个常量
* 3. 字符串一旦初始化,就不会被改变
* 4. String类,是一个不可变的对象
*/
String对象一旦创建就不会被改变
/*
* “” null区别是什么
* “”是一个具体的字符串对象,null是空常量
* “”调用String类中的方法,null是所有引用类型的公共值
*/
String类的方法总结
|– 很重要的,生活中的大部分数据,都是以字符串的形式存在
|– 特点,常量,不可变对象
方法的总结
|– 构造,将字节数组和字符数组转成字符串
|– new String(字节数组)
|– new String(字符数组)
|– 判断,返回的都是布尔类型
|– boolean equals()两个字符串的全等判断,完全一致,返回true,后期比较的常用
|– boolean contains()判断一个字符串是否在另一个字符串中,完全存在,返回true
|– boolean startsWith()判断一个字符串是否以另一个字符串开头
|– boolean endsWith()判断一个字符串是否以另一个字符串结尾
|– boolean isEmpty()如果字符串的长度是0,返回true return str.length()==0
|– 获取
|– char charAt(int index)返回指定索引出的单个字符
|– int indexOf(ch c) 返回指定的字符在字符串中第一次出现的位置
|– int indexOf(String s)返回指定的字符串在字符串中第一次出现的位置
|– int lastIndexOf(ch c)反向索引,获取指定的字符在字符串中最后一次出现的位置
|– int lastIndexOf(String s)反向索引,获取指定的字符串在字符串中最后一次出现的位置
|– String substring(int start,int end)获取字符串中的一部分,包含头,不包含尾,返回新字符串
|– 转换
|– String toUpperCase()字符串转成大写,返回新字符串
|– String toLowerCase()字符串转成小写,返回新字符串
|– char[] toCharArray()将字符串转成字符数组,原始字符串不会变
|– static String valueOf(任意)将任意类型转成字符串
String s = String.valueOf(任意的)
|– 其他
|– int compareTo()按照字典顺序比较两个字符串,前面的大,返回正数,
相等返回0,前面的小,返回负数
|– String[] split(字符串) 对字符串进行切割,返回字符串数组,原始字符串不变
|– String replace(老串,新串)替换字符串,返回新的字符串,原始字符串不变
|– String trim()去掉字符串的两端的空格
StringBuffer字符串操作的缓冲区,提高字符串的操作效率
底层实现是可变的数组结构。默认是16个字符 new StringBuffer()
|– StringBuffer中的常用的方法
|– StringBuffer append(任意类型)将任意类型追加到缓冲区中,结果都是字符串
|– StringBuffer delete(int start,int end)删除缓冲区中的字符,包含头,不包含尾
|– StringBuffer deleteCharAt(int index)删除缓冲区中指定索引上的单个字符
|– StringBuffer insert(int index,任意)将任意类型插入到指定的位置,其他的字符顺延
|– void setCharAt(int index ,char ch)修改指定位置上的单个字符
|– String toString()将缓冲区变成字符串,可以使用String对象中的方法
|– StringBuffer reverse()将缓冲区中的字符进行反转,位置已经发生变化
StringBuffer和StringBuilder
完全一样的方法,但是StringBuffer线程安全,StringBuilder线程不安全,效率高
单线程的程序,推荐使用StringBuilder开始于1.5/
/*
=* 字符串的特点
* 1. 字符串是一个对象
* 2. 字符串是一个常量
* 3. 字符串一旦初始化,就不会被改变
* 4. String类,是一个不可变的对象
*/
//建立了2个对象,一个是new String对象,一个是“abc”对象 String str1 = new String("abc");
String s1 = "你好"; String s2 = "你"; String s3 = "好"; //变量,编译时期,没有值,运行时候,从新开内存空间 System.out.println(s1==(s2+s3));//false //运算的是常量,固定不变的,编译时期,JVM已经确定了值是什么,运行时期不会开新的内存空间 System.out.println(s1==("你"+"好"));//true
String对象一旦创建就不会被改变
String s1 = "abc"; String s2 = "bcd"; method(s1,s2); System.out.println(s1); System.out.println(s2) //内存区域 public static void method(String s1,String s2){ s1 = s1+=s2; s2 = s1+=s2; }`
int[] arr = {1,2,3}; //传递的是一个地址,能够影响到以前的 method(arr); System.out.println(arr[0]); public static void method(int[] arr){ arr[0] = 5; }
//重点掌握,2个构造方法,将字节数组和字符数组变成字符串 public static void method(){ //String str = "abc"; //String(byte[] bytes) 将字节数组变成字符串 byte[] buf = {98,99,100}; String s = new String(buf); System.out.println(s); // 字节数组 开始位置 个数 //String(byte[] bytes, int offset, int length) String s1 = new String(buf,2,1); System.out.println(s1); //String(char[] value) 将字符数组变成字符串 char[] ch = {'a','b','c'}; String s2 = new String(ch); System.out.println(s2); // 字符数组 开始位置 个数 //String(char[] value, int offset, int count) String s3 = new String(ch,0,ch.length); System.out.println(s3) }
/*
* “” null区别是什么
* “”是一个具体的字符串对象,null是空常量
* “”调用String类中的方法,null是所有引用类型的公共值
*/
String类的方法总结
|– 很重要的,生活中的大部分数据,都是以字符串的形式存在
|– 特点,常量,不可变对象
方法的总结
|– 构造,将字节数组和字符数组转成字符串
|– new String(字节数组)
|– new String(字符数组)
|– 判断,返回的都是布尔类型
|– boolean equals()两个字符串的全等判断,完全一致,返回true,后期比较的常用
|– boolean contains()判断一个字符串是否在另一个字符串中,完全存在,返回true
|– boolean startsWith()判断一个字符串是否以另一个字符串开头
|– boolean endsWith()判断一个字符串是否以另一个字符串结尾
|– boolean isEmpty()如果字符串的长度是0,返回true return str.length()==0
|– 获取
|– char charAt(int index)返回指定索引出的单个字符
|– int indexOf(ch c) 返回指定的字符在字符串中第一次出现的位置
|– int indexOf(String s)返回指定的字符串在字符串中第一次出现的位置
|– int lastIndexOf(ch c)反向索引,获取指定的字符在字符串中最后一次出现的位置
|– int lastIndexOf(String s)反向索引,获取指定的字符串在字符串中最后一次出现的位置
|– String substring(int start,int end)获取字符串中的一部分,包含头,不包含尾,返回新字符串
|– 转换
|– String toUpperCase()字符串转成大写,返回新字符串
|– String toLowerCase()字符串转成小写,返回新字符串
|– char[] toCharArray()将字符串转成字符数组,原始字符串不会变
|– static String valueOf(任意)将任意类型转成字符串
String s = String.valueOf(任意的)
|– 其他
|– int compareTo()按照字典顺序比较两个字符串,前面的大,返回正数,
相等返回0,前面的小,返回负数
|– String[] split(字符串) 对字符串进行切割,返回字符串数组,原始字符串不变
|– String replace(老串,新串)替换字符串,返回新的字符串,原始字符串不变
|– String trim()去掉字符串的两端的空格
StringBuffer字符串操作的缓冲区,提高字符串的操作效率
底层实现是可变的数组结构。默认是16个字符 new StringBuffer()
|– StringBuffer中的常用的方法
|– StringBuffer append(任意类型)将任意类型追加到缓冲区中,结果都是字符串
|– StringBuffer delete(int start,int end)删除缓冲区中的字符,包含头,不包含尾
|– StringBuffer deleteCharAt(int index)删除缓冲区中指定索引上的单个字符
|– StringBuffer insert(int index,任意)将任意类型插入到指定的位置,其他的字符顺延
|– void setCharAt(int index ,char ch)修改指定位置上的单个字符
|– String toString()将缓冲区变成字符串,可以使用String对象中的方法
|– StringBuffer reverse()将缓冲区中的字符进行反转,位置已经发生变化
StringBuffer和StringBuilder
完全一样的方法,但是StringBuffer线程安全,StringBuilder线程不安全,效率高
单线程的程序,推荐使用StringBuilder开始于1.5/
/** * 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写) * * @author zyy * */ public class Test7 { public static void main(String[] args) { //获取字符数组 String str = getString(); //数组字母大小写转换 char[] strArray = str.toCharArr); reserveCase(strArray); //输出数组 System.out.println(new String(strArray)); } /** * 大小写转换,用ASICC来操作,感觉是最简单的,也可以用正则表达式 * @param strArray */ private static void reserveCase(char[] strArray) { int dist = 'a'-'A'; for (int i = 0; i < strArray.length; i++) { if('a'<=strArray[i]&&strArray[i]<='z'){ //小写转大写 strArray[i] = (char) (strArray[i] - dist); }else if('A'<=strArray[i]&&strArray[i]<='Z'){ //大写转小写 strArray[i] = (char) (strArray[i] + dist); } } } /** * 获取一个字符串 * * @return 返回字符串 */ private static String getString() { return new Scanner(System.in).next(); }
相关文章推荐
- Spring之IOC篇章详解
- Java内部锁的可重用性(Reentrancy)
- java线程互斥&同步(二)
- struts2中iterator标签的相关使用
- 类和对象
- Java可重入锁
- 【Java安全技术探索之路系列:Java基础安全服务】之一:基础安全服务开篇
- java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
- SWT Designer在Eclipse中的安装 以及注册
- hadoop mapreduce读取orcfile的java代码示例
- Java 命名规范
- 修改hadoop FileUtil.java,解决权限检查的问题
- Spring handler method
- java获取图片像素点的RGB值
- JAVA中获得一个月最大天数的方法(备忘)
- Java中static关键字与final关键字的用法与区别
- JAVA 环境变量
- gwt中 java与js 的相互调用
- java---当天早八点
- Struts2平凡之路(三)Struts2架构和运行流程