黑马程序员_String类
2014-03-28 07:00
260 查看
-------
android培训、java培训、期待与您交流! ----------
一.概述
String类用于描述字符串事物。
字符串是常量,它们的值在创建之后不能改变。
字符串常量存在于常量池中。(方法区)
字符串是一个特殊的对象。
字符串缓冲区支持可变的字符串。
String str = “abc”;//str是类类型变量,“abc”是一个对象
String str1 = new String(“abc”);//str1在内存中有两个对象
二.常见方法
1.获取
字符串中的包含的字符数,也就是字符长度。
int length();
根据位置获取位置上的某个字符。
char charAt(int index);
根据字符获取该字符在字符串中的位置。
int indexOf(int ch);//返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex);//从fromIndex指定位置开始,获取ch在字符串中的位置。
int indexOf(String str);//返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex);//从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastindexOf(int ch);//
返回指定字符在此字符串中最后一次出现处的索引。
2.判断
字符串中是否包含某一个子串。
boolean contains(str);
特殊之处:indexOf(str);可以索引str第一次出现的位置,如果返回-1,表示该str在字符串中不存在。
所以可以用于对指定字符串判断是否包含。
if(str.indexOf(“aa”)!=-1){ }
字符串中是否有内容。
boolean isEmpty();//原理:判断长度是否为0。
字符串是否以指定的内容开头。
boolean startWith(str);
字符串是否以指定的内容开头。
boolean endWith(str);
判断字符串内容是否相同,复写了Object类中的equals()方法。
boolean equals(str);
判断内容是否相同,并忽略大小写。(将参与比较的字符串全变成小写,再用equals比较)
boolean equalsIgnoreCase();
3.转换
将字符数组转换成字符串。
构造函数:
String(char[] );
String(char[],offset,count);//将字符数组中的一部分转换成字符串。
静态方法:
//返回指定数组中表示该字符序列的 String。
static String copyValueOf(char[]);
//返回指定数组中表示该字符序列的 String。可以设置起点和数量。
static String copyValueOf(char[],data,int offset,int count);
//返回 char数组参数的字符串表示形式。
static String valueOf(char[]);
将字符串转成字符数组。
char[] toCharArray();
将字节数组转换成字符串。
String(byte[] );
String(byte[],offset,count);//将字节数组中的一部分转换成字符串。
将字符串转换成字节数组。
byte[] getBytes();
将基本数据类型转换成字符串。
static String valueOf(int x);//
返回 int 参数的字符串表示形式。
static String valueOf(double d);//
返回double参数的字符串表示形式。
static String valueOf(long l); //返回long参数的字符串表示形式。
static String valueOf(long l); //返回long参数的字符串表示形式。
static String valueOf(Object obj);//返回 Object参数的字符串表示式。
注意:
字符串和字节数组在转换过程中,可以指定编码表。
4.替换
String replace(char oldChar, char newChar);
5.切割
String[] split(regex);
6.子串:获取字符串中的一部分。
String subString(int
beginIndex); //返回一个新的字符串,它是此字符串的一个子字符串。从起始位置到结尾。
String substring(int beginIndex, int endIndex);//
返回一个新的字符串,它是此字符串的一个子字符串。包含头,不包含结尾。
7.转换,去除空格,比较
将字符串转成大写和小写。
String toUpperCase(); //转成大写
String toLowerCase(); //转成小写
将字符串两端的空格去除。
String trim();
对两个字符串进行自然顺序的比较
int compareTo();
代码:
练习2,获取一个字符串在另一个字符串中出现的次数。
"abkkcdkkefkkskk"
思路:
定义个计数器。
获取kk第一次出现的位置。
从第一次出现位置后剩余的字符串中继续获取kk出现的位置。每获取一次就计数一次。
当获取不到时,计数完成。
代码:
三.StringBuffer
字符串缓冲区,是一个容器。
1.特点:
长度是可变化的。
可以操作多个数据类型。
最终会通过toString方法变成字符串。
2.常见方法
存储
StringBuffer append();//将指定的数据作为参数添加到已有数据的结尾处。
StringBuffer insert(offset,data);//将数据插入到指定的位置。
删除
StringBuffer delete(start,end);//删除缓冲区中的数据,包含头,不包含尾。
StringBuffer delete(index);//删除指定位置的字符。
delete(0,sb.length());//清空缓冲区。
获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
修改
StringBuffer replace(start,end,str);//
使用给定 String中的字符替换此序列的子字符串中的字符。
void setCharAt(int index, char ch) ;//将给定索引处的字符设置为 ch。
反转
StringBuffer reverse();//将此字符序列用其反转形式取代。
将缓冲区中指定的数据存储到指定字符数组中。
//将字符从此序列复制到目标字符数组 dst。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
在jdk1.5之后,出现了StringBuilder:
StringBuilder:线程不同步。(建议使用)
StringBuffer:线程同步。
java升级的三个要素:
提高效率。
简化书写。
提高安全性。
代码:
四.基本数据类型包装类
将基本数据类型封装成对象。
1.好处:可以在对象中定义更多的功能方法操作该数据。
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
boolean Boolean
float float
double Double
char Charater
2.最常见作用:
a.用于基本数据类型和字符串之间的转换。
b.基本数据类型转换为字符串:
基本数据类型+” ”
基本数据类型. toString(基本数据类型值);
举例:Integer.toString(34);//将整数34变成“34”;
c.字符串转换成基本数据类型:
格式:xxx a=Xxx.parseXxx(string);
int a=Integer.parseInt(“12”);
对象调用:
Integer i=new Integer(“12”);
int num=i.intValue();
d.十进制转为其它进制
toBinaryString(); //十进制转为二进制
toHexString(); //十进制转为十六进制
toOctalString(); //十进制转为八进制
其它进制转为十进制
parseInt(string,int radix);
举例:
int x=Integer.parseInt(“110”,2);//6
e.整数类型的最大值:
Integer.MAX_VALUE;
-------
android培训、java培训、期待与您交流! ----------
android培训、java培训、期待与您交流! ----------
一.概述
String类用于描述字符串事物。
字符串是常量,它们的值在创建之后不能改变。
字符串常量存在于常量池中。(方法区)
字符串是一个特殊的对象。
字符串缓冲区支持可变的字符串。
String str = “abc”;//str是类类型变量,“abc”是一个对象
String str1 = new String(“abc”);//str1在内存中有两个对象
二.常见方法
1.获取
字符串中的包含的字符数,也就是字符长度。
int length();
根据位置获取位置上的某个字符。
char charAt(int index);
根据字符获取该字符在字符串中的位置。
int indexOf(int ch);//返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex);//从fromIndex指定位置开始,获取ch在字符串中的位置。
int indexOf(String str);//返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex);//从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastindexOf(int ch);//
返回指定字符在此字符串中最后一次出现处的索引。
2.判断
字符串中是否包含某一个子串。
boolean contains(str);
特殊之处:indexOf(str);可以索引str第一次出现的位置,如果返回-1,表示该str在字符串中不存在。
所以可以用于对指定字符串判断是否包含。
if(str.indexOf(“aa”)!=-1){ }
字符串中是否有内容。
boolean isEmpty();//原理:判断长度是否为0。
字符串是否以指定的内容开头。
boolean startWith(str);
字符串是否以指定的内容开头。
boolean endWith(str);
判断字符串内容是否相同,复写了Object类中的equals()方法。
boolean equals(str);
判断内容是否相同,并忽略大小写。(将参与比较的字符串全变成小写,再用equals比较)
boolean equalsIgnoreCase();
3.转换
将字符数组转换成字符串。
构造函数:
String(char[] );
String(char[],offset,count);//将字符数组中的一部分转换成字符串。
静态方法:
//返回指定数组中表示该字符序列的 String。
static String copyValueOf(char[]);
//返回指定数组中表示该字符序列的 String。可以设置起点和数量。
static String copyValueOf(char[],data,int offset,int count);
//返回 char数组参数的字符串表示形式。
static String valueOf(char[]);
将字符串转成字符数组。
char[] toCharArray();
将字节数组转换成字符串。
String(byte[] );
String(byte[],offset,count);//将字节数组中的一部分转换成字符串。
将字符串转换成字节数组。
byte[] getBytes();
将基本数据类型转换成字符串。
static String valueOf(int x);//
返回 int 参数的字符串表示形式。
static String valueOf(double d);//
返回double参数的字符串表示形式。
static String valueOf(long l); //返回long参数的字符串表示形式。
static String valueOf(long l); //返回long参数的字符串表示形式。
static String valueOf(Object obj);//返回 Object参数的字符串表示式。
注意:
字符串和字节数组在转换过程中,可以指定编码表。
4.替换
String replace(char oldChar, char newChar);
5.切割
String[] split(regex);
6.子串:获取字符串中的一部分。
String subString(int
beginIndex); //返回一个新的字符串,它是此字符串的一个子字符串。从起始位置到结尾。
String substring(int beginIndex, int endIndex);//
返回一个新的字符串,它是此字符串的一个子字符串。包含头,不包含结尾。
7.转换,去除空格,比较
将字符串转成大写和小写。
String toUpperCase(); //转成大写
String toLowerCase(); //转成小写
将字符串两端的空格去除。
String trim();
对两个字符串进行自然顺序的比较
int compareTo();
代码:
/*练习1.模拟一个trim方法,去除字符串两端的空格。 * 思路: *1.判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。 *结尾处判断空格也是如此。 *2.当开始和结尾都判断到不是空格时,就是要获取的字符串。 **/ class StringTest { public static void main(String[] args) { String s = " ab cf "; sop("(" + s + ")"); // String r= myTrim(s); s = myTrim(s); // 调用方法 参数传递 sop(s); sop("(" + s + ")"); sop("(" + reserveString(s) + ")"); } public static String myTrim(String str) { int start = 0, end = str.length() - 1; while (start <= end && str.charAt(start) == ' ') start++; while (start <= end && str.charAt(end) == ' ') end--; return str.substring(start, end + 1); // substring()方法包含头,不含尾 } public static void sop(String str) { System.out.println(str); }
练习2,获取一个字符串在另一个字符串中出现的次数。
"abkkcdkkefkkskk"
思路:
定义个计数器。
获取kk第一次出现的位置。
从第一次出现位置后剩余的字符串中继续获取kk出现的位置。每获取一次就计数一次。
当获取不到时,计数完成。
代码:
public class StringTest2 { //方式1 public static int getSubCount(String str,String key) { int count=0; int index=0; while((index=str.indexOf(key))!=-1) { sop("str="+str); str=str.substring(index+key.length()); count++; } return count; } public static void sop(String str) { System.out.println(str); } //方式2 public static int getSubCount_2(String str,String key) { int count=0; int index=0; while((index=str.indexOf(key,index))!=-1) { sop("index="+index); index=index+key.length(); count++; } return count; } public static void main(String[] args) { String str="abckkdefkkfgkk"; //方法调用并打印结果 sop("count="+getSubCount(str, "kk")); sop("count="+getSubCount_2(str, "kk")); } }
三.StringBuffer
字符串缓冲区,是一个容器。
1.特点:
长度是可变化的。
可以操作多个数据类型。
最终会通过toString方法变成字符串。
2.常见方法
存储
StringBuffer append();//将指定的数据作为参数添加到已有数据的结尾处。
StringBuffer insert(offset,data);//将数据插入到指定的位置。
删除
StringBuffer delete(start,end);//删除缓冲区中的数据,包含头,不包含尾。
StringBuffer delete(index);//删除指定位置的字符。
delete(0,sb.length());//清空缓冲区。
获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
修改
StringBuffer replace(start,end,str);//
使用给定 String中的字符替换此序列的子字符串中的字符。
void setCharAt(int index, char ch) ;//将给定索引处的字符设置为 ch。
反转
StringBuffer reverse();//将此字符序列用其反转形式取代。
将缓冲区中指定的数据存储到指定字符数组中。
//将字符从此序列复制到目标字符数组 dst。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
在jdk1.5之后,出现了StringBuilder:
StringBuilder:线程不同步。(建议使用)
StringBuffer:线程同步。
java升级的三个要素:
提高效率。
简化书写。
提高安全性。
代码:
class StringBufferDemo { public static void main(String[] args) { StringBuilder sb = new StringBuilder("abcdef"); char[] chs = new char[6]; sb.getChars(1,4,chs,1); for(int x=0; x<chs.length; x++) { sop("chs["+x+"]="+chs[x]+";"); } draw(3,6); draw(8,9); } public static void method_update() { StringBuffer sb = new StringBuffer("abcde"); sb.setCharAt(2,'k'); sop(sb.toString()); } public static void method_del() { StringBuffer sb = new StringBuffer("abcde"); sb.deleteCharAt(2); sop(sb.toString()); } public static void method_add() { StringBuffer sb = new StringBuffer(); sb.insert(1,"qq"); sop(sb.toString());//abctrue34 } public static void sop(String str) { System.out.println(str); } public static void draw(int row,int col) { StringBuilder sb = new StringBuilder(); for(int x=0; x<row; x++) { for(int y=0; y<col; y++) { sb.append("*"); } sb.append("\r\n"); } sop(sb.toString()); } }
四.基本数据类型包装类
将基本数据类型封装成对象。
1.好处:可以在对象中定义更多的功能方法操作该数据。
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
boolean Boolean
float float
double Double
char Charater
2.最常见作用:
a.用于基本数据类型和字符串之间的转换。
b.基本数据类型转换为字符串:
基本数据类型+” ”
基本数据类型. toString(基本数据类型值);
举例:Integer.toString(34);//将整数34变成“34”;
c.字符串转换成基本数据类型:
格式:xxx a=Xxx.parseXxx(string);
int a=Integer.parseInt(“12”);
对象调用:
Integer i=new Integer(“12”);
int num=i.intValue();
d.十进制转为其它进制
toBinaryString(); //十进制转为二进制
toHexString(); //十进制转为十六进制
toOctalString(); //十进制转为八进制
其它进制转为十进制
parseInt(string,int radix);
举例:
int x=Integer.parseInt(“110”,2);//6
e.整数类型的最大值:
Integer.MAX_VALUE;
-------
android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员--String类和StringBuffer类
- 黑马程序员-第十一天(String类)
- 黑马程序员 第六篇:关于String类
- 黑马程序员_String类常用语法及面试题
- 黑马程序员_Java(object类,scanner类,string类)
- 黑马程序员 Java基础 ---> String类
- 黑马程序员----Java基础之String类
- 黑马程序员------String类
- 黑马程序员----------------------String类
- 黑马程序员__String类问题总结
- 黑马程序员——Java基础—String类
- 黑马程序员_String类及StringBuffer和StringBuilder概述和功能、基本数据类型
- 黑马程序员——第五篇:Scanner、String类
- 黑马程序员--Java基础--String类
- 黑马程序员_String类与基本数据类型包装类
- 黑马程序员——Java之String类、基本数据类型对象包装类等
- 黑马程序员-String类、StringBuffer
- 黑马程序员--Java基础学习--String类剖析
- 黑马程序员--String类--
- 黑马程序员———Java基础——Java API、String类