String类__【概述】【String类的常见操作】
2014-06-12 20:29
337 查看
---------------------------------------- android培训、java培训、期待与您交流!
------------------------------------
String类概念
用于描述字符串;字符串是String类类型的变量,而类类型的变量一定是对象;
1.所以每个字符串都是一个特殊的对象
2.字符串一旦初始化就不可以被改变;是被final修饰的常量
3.在Object中的equals方法比较的是对象的内存地址,即哈希值的方法体中是"==";
在String类中复写了equals方法,首先比较的是两个字符串的内存地址是否相同,如果相同返回值等于true,
如果内存地址值不同则比较字符串的内容,如果内容相同,则返回true;
使用new创建字符串对象的步骤如果,每调用一次就会创建一个新的对象。
1.首先在堆(不是常量池)中创建一个包含指定内容的字符串对象,并将字符串的引用指向该对象
2.去字符串常量池中查看,是否有包含该内容的对象。
3.若有,则将new出来的字符串对象与字符串常量池中的内容相同的对象联系起来
4.若没有,则在字符串常量池中再创建一个包含该内容的字符串对象,并将堆中的对象与字符串常量池中新创建出来的对象联系起来。
字符串特殊的内存机制带来的好处,即是:只比较两个字符串联系的常量池中对性爱那个是否为同一即可,不论字符串大小,比较速度一样。
String str ="abc";
1.先在栈中创建一个字符串引用对象str;
2.然后查找堆中常量池里有没有存放"abc";
3.如果没有,则将"abc"存放进常量池,并令str指向"abc"
4.如果已经有"abc",则直接令str指向"abc";
String类的方法操作
①获取
1.1--获得字符串的包含的字符数,即字符串的长度
int length();获取长度
1.2--根据位置获取位置上某个字符
char charAt(int index)
1.3--根据字符获取该字符在字符串中的位置
int indexOf(int ch);返回ch在字符串中第一次出现的位置
int indexOf(int ch,int formIndex);从fromIndex指定位置开始,获取ch字符在字符串中第一次出现的位置
int indexOf(String str)返回str在字符串中第一次出现的位置
int indexOf(String str,int formIndex)从fromIndex指定位置开始,获取str字符串中第一次出现的位置
int lastIndexOf(int ch);返回ch在字符串最后一次出现的位置。
②判断
2.1--字符串中是否包含某一个字串
boolean contains(str);
特殊之处indexOf(str)可以索引str第一次出现的位置,如果返回-1,表示str不存在该字符串中 ;可以用于对指定判断是否包含
if (str.indexOf("aa")!= -1);既可以判断是否存在,又可以获取出现的位置
2.2--字符串是否为空
boolean isEmpty();原理就是判断长度是否为0
2.3--字符串是否以指定内容开头 boolea startsWith(str);
2.4--字符串是否以指定内容结尾 boolean endsWith(str);
2.5--判断字符串内容是否否相同 boolean equals(str); 复写了Object类中的equals方法
2.6--判断内容是否相同(忽略大小写)boolean equalsIgnoreCase();
③转换
3.1将字符数组转换成字符串
构造函数:要注意new
new String (char[]);分配一个新的String,使其包含当前字符数组的字符序列
new String(char[], offset,count) ;将字符数组中的一部分转成字符串。offset起点;count数量
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset ; int count);
static String valueOf(char[]);
3.3将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
3.2将字符串转成字符数组。char[] toCharArray():
3.4将字符串转成字节数组。byte[] getBytes():
3.5将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
//3+"";//String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
④替换String replace(oldchar,newchar);
⑤切割String[] split(regex);
⑥子串。获取字符串中的一部分
String substring(begin);
String substring(begin,end);
⑦转换 去除空格,比较。
7.1 将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
7.2 将字符串两端的多个空格去除。
String trim();
7.3 对两个字符串进行自然顺序的比较。
int compareTo(string);
---------------------------------------- android培训、java培训、期待与您交流!
------------------------------------
------------------------------------
String类概念
用于描述字符串;字符串是String类类型的变量,而类类型的变量一定是对象;
1.所以每个字符串都是一个特殊的对象
2.字符串一旦初始化就不可以被改变;是被final修饰的常量
3.在Object中的equals方法比较的是对象的内存地址,即哈希值的方法体中是"==";
在String类中复写了equals方法,首先比较的是两个字符串的内存地址是否相同,如果相同返回值等于true,
如果内存地址值不同则比较字符串的内容,如果内容相同,则返回true;
创建字符串:
String str =new String("abc");使用new创建字符串对象的步骤如果,每调用一次就会创建一个新的对象。
1.首先在堆(不是常量池)中创建一个包含指定内容的字符串对象,并将字符串的引用指向该对象
2.去字符串常量池中查看,是否有包含该内容的对象。
3.若有,则将new出来的字符串对象与字符串常量池中的内容相同的对象联系起来
4.若没有,则在字符串常量池中再创建一个包含该内容的字符串对象,并将堆中的对象与字符串常量池中新创建出来的对象联系起来。
字符串特殊的内存机制带来的好处,即是:只比较两个字符串联系的常量池中对性爱那个是否为同一即可,不论字符串大小,比较速度一样。
String str ="abc";
1.先在栈中创建一个字符串引用对象str;
2.然后查找堆中常量池里有没有存放"abc";
3.如果没有,则将"abc"存放进常量池,并令str指向"abc"
4.如果已经有"abc",则直接令str指向"abc";
String类的方法操作
①获取
1.1--获得字符串的包含的字符数,即字符串的长度
int length();获取长度
1.2--根据位置获取位置上某个字符
char charAt(int index)
1.3--根据字符获取该字符在字符串中的位置
int indexOf(int ch);返回ch在字符串中第一次出现的位置
int indexOf(int ch,int formIndex);从fromIndex指定位置开始,获取ch字符在字符串中第一次出现的位置
int indexOf(String str)返回str在字符串中第一次出现的位置
int indexOf(String str,int formIndex)从fromIndex指定位置开始,获取str字符串中第一次出现的位置
int lastIndexOf(int ch);返回ch在字符串最后一次出现的位置。
②判断
2.1--字符串中是否包含某一个字串
boolean contains(str);
特殊之处indexOf(str)可以索引str第一次出现的位置,如果返回-1,表示str不存在该字符串中 ;可以用于对指定判断是否包含
if (str.indexOf("aa")!= -1);既可以判断是否存在,又可以获取出现的位置
2.2--字符串是否为空
boolean isEmpty();原理就是判断长度是否为0
2.3--字符串是否以指定内容开头 boolea startsWith(str);
2.4--字符串是否以指定内容结尾 boolean endsWith(str);
2.5--判断字符串内容是否否相同 boolean equals(str); 复写了Object类中的equals方法
2.6--判断内容是否相同(忽略大小写)boolean equalsIgnoreCase();
③转换
3.1将字符数组转换成字符串
构造函数:要注意new
new String (char[]);分配一个新的String,使其包含当前字符数组的字符序列
new String(char[], offset,count) ;将字符数组中的一部分转成字符串。offset起点;count数量
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset ; int count);
static String valueOf(char[]);
3.3将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
3.2将字符串转成字符数组。char[] toCharArray():
3.4将字符串转成字节数组。byte[] getBytes():
3.5将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
//3+"";//String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
④替换String replace(oldchar,newchar);
⑤切割String[] split(regex);
⑥子串。获取字符串中的一部分
String substring(begin);
String substring(begin,end);
⑦转换 去除空格,比较。
7.1 将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
7.2 将字符串两端的多个空格去除。
String trim();
7.3 对两个字符串进行自然顺序的比较。
int compareTo(string);
package string; public class StringMethodDemo { public static void main(String[] args) { // method_get(); // method_is(); // method_trans(); // method_replace(); // method_split(); // method_sub(); method7(); } public static void sop(Object obj) { System.out.println(obj); } // 获取 public static void method_get() { String str = "abcdefgk"; sop(str.length()); sop(str.charAt(2)); sop(str.indexOf('k')); // 从下标2开始,获取'd'第一次出现的位置, 如果没有这个字符返回-1 sop(str.indexOf('d', 2)); sop(str.indexOf("bc")); sop(str.indexOf("bc", 1)); sop(str.lastIndexOf('g', 6));// 从后往前找, sop(str.lastIndexOf("g")); } // 判断 private static void method_is() { String str = "StringDemo.java"; String s = "stringDemo.java"; sop(str.contains("String"));// 区分大小写 sop(str.indexOf("String"));// 0 sop(str.isEmpty());// 判断是否为空,默认等于true,为空,有数据则为false; sop(str.endsWith(".java"));// 判断后缀名 sop(str.startsWith("String"));// 判断前缀名 sop(str.equals(s));// 判断两个字符串的内容 sop(str.equalsIgnoreCase(s));// 不区分大小写,所以为true } // 转换 private static void method_trans() { char[] arr = { 'a', 'h', 'k', 'g', 'c', 't', 'y', 'r' }; // 创建一个匿名的String对象 sop(new String(arr));// 将字符转为字符串 sop(new String(arr, 0, arr.length));// 从0开始,到最后一个 // 静态方法 sop(String.copyValueOf(arr)); sop(String.copyValueOf(arr, 0, arr.length));// 结果同上 sop(String.valueOf(arr));// 将字符数组转换为字符串 String s = "Hello Java"; char[] ch = s.toCharArray();// 将字符串转换为字符数组 for (int i = 0; i < ch.length; i++) { sop("ch:" + ch[i]); } } // 替换 public static void method_replace() { String s = "Hello World!"; String s1 = s.replace("World", "Java"); sop(s); sop(s1); } // 切割 public static void method_split() { String s = "xiaojie,shuaige,jiejie"; String[] arr = s.split("\\,"); for (int i = 0; i < arr.length; i++) { sop(arr[i]); } } // 截取 private static void method_sub() { String str = "asdfghjkl"; sop(str.substring(0)); sop(str.substring(3, str.length())); } // 大小写转换 public static void method7() { String s = " Hello Java! "; sop(s.toLowerCase());// 转为小写 sop(s.toUpperCase());// 转为大写 sop(s.trim());// 去掉空格 String s1 = "abc";// 字典偏移值 String s2 = "abhjlj";// 返回int 0等于相等,正数大于,负数小于 sop(s1.compareTo(s2)); } }
---------------------------------------- android培训、java培训、期待与您交流!
------------------------------------
相关文章推荐
- String类__【概述】【String类的常见操作】
- 【Java编程基础】01.Java中的String类以及字符串的常见操作
- Java中String类(字符串操作)的10个常见问题和解决方法
- 黑马程序员,String类适用于描述字符串事物的。常见的操作有哪些?
- String类的常见操作
- javaAPI(1)之String类的常见操作
- 黑马程序员:String类的七种常见操作
- JAVA中String类的常见操作
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- Java数组概述、定义格式说明、初始化、内存分配及常见操作
- 常见对象_String类的概述
- 黑马程序员——String类及其常见操作
- Java中String类(字符串操作)的10个常见问题和解决方法
- String类——常见字符串操作指令
- String类及StringBuffer类常见的操作
- String类的常见操作
- 常见字符串操作: C++ string 类 和Java String类 用法小结
- 黑马程序员—String类 (常见的操作有那些)
- String类的概述及常见方法使用
- Java中String类(字符串操作)的10个常见问题和解决方法