黑马程序员——String
2015-11-05 12:14
549 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------
String类
字符串是一个特殊的对象
字符串一旦初始化就不可以被改变
★String s1 = “abc”;
Strings2 = new String(“abc”);
有什么区别?
s1在内存中有一个对象
s2在内存中有两个对象
★String类适用于描述字符串事物,那么他就提供了多个方法对字符串进行操作
(1)获取
(1.1)字符串中的包含的字符数,也就是字符串的长度 int length()
(1.2)根据位置获取位置上某个字符char charAt(int index);
(1.3)根据字符获取该字符在字符串中位置
intindexOf(int ch):返回的是ch在字符串中的第一次出现的位置
int indexOf(int ch,int fromIndex):从fromIndex制定位置开始,获取ch在字符串中出现的位置
intindexOf(String str):返回的是str在字符串中的第一次出现的位置
int indexOf(String str,int fromIndex):从fromIndex制定位置开始,获取str在字符串中出现的位置
intlastIndexOf(String str):
(2)判断
(2.1)字符串是否包含某一子串 contains(str)
(2.2)字符串中时候有内容 Boolean isEmpty()
(2.3)字符串是否是以指定内容开头 boolean startWidth(str)
(2.4) 字符串是否是以指定内容结尾booleanendWidth(str)
(2.5)判断字符串内容是否相同,复写了Object类中的equals方法
(2.6) 判断字符串内容是否相同 忽略大小写 booleanequalsIgnoreCase();
(3)转换
(3.1)将字符数组转成字符串
构造函数:String(char[])
String(char[],offset,count)
静态方法:
staticString copyValueOf(char[])
staticString copyValueOf(char[] data,int offset,int count)
staticString valueOf(char[])
(3.2)将字符串转成字符串数组
char[]toCharAarray();
(3.3)将字节数组转成字符串
构造函数:String(byte[])
String(byte [],offset,count)
(3.4)将字符串转成字节数组
byte[]getBytes()
(3.5)将基本数据类型转成字符串
static String valueOf(int) static StringvalueOf(double)
★特殊:字符串和字节数组在转换过程中,是可以制定编码表的
(4)替换
(4.1)Stringreplace(char oldchar,char new char)
(5)切割
String[]split(regex);
(6)子串,获取字符串中的一部分
Stringsubstring(begin);
Stringsubstring(begin,end)
(7)转换:取出空格,比较
(7.1)将字符串转成大写或者小写
StringtoUpperCase();
StringtoLowerCase()
(7.2)将字符串两端的多个空格去除
Stringtrim();
(7.3)对两个字符串进行自然顺序排序的比较
intcompareTo(String);
●StringBuffer
◆字符串的组成原理就是通过该类实现的
◆StringBuffer可以对字符串内容进行增删
◆StringBuffer是一个容器
◆很多方法与String相同
特点:
◆StringBuffer是可变长度的
◆StringBuffer可以直接操作多个数据类型
◆通过toString方法变成字符串
★(1)存储
StringBufferappend():将制定数据作为参数添加到已有数据结尾处
StringBufferinsert(index,数据)可以将数据插入到指定index指定位置
(2)删除
StringBufferdelete(start,end):删除缓冲区中的数据,包含start,不包含end
StringBufferdeleteCharAt(index):删除指定位置的数据
(3)获取
charcharAt(int index)
intindexOf(String str)
intlastIndexOf(String str)
intlength()
Stringsubstring(int start,int end)
(4)修改
StringBufferreplace(start,end,string)
voidsetCharAt(int index,char)
(5)反转
StringBufferreverse()
(6)将缓冲区中指定数据存储到指定字符数组中
voidgetChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步
StringBuilder是线程不同步的
*jdk升级原因 1提高效率2简化书写3提高安全性
●基本数据类型对象包装类
byte Byte
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用
就是用于基本数据类型和字符串类型之间做转换
◆基本数据类型转成字符串
基本数据类型+“”
基本数据类型.toString(基本数据类型值)
如Integer.toString(34)
◆字符串转成基本数据类型
xxxa=xxx.parseXXX(“ ”);
Integer i = new Integer("123");
int intValue =i.intValue();
◆十进制转成其它进制
toBinaryString()
toHexString()
toOctalString()
其他进制转成十进制
parsrInt(“110”,10)
●JDK1.5版本以后出现的新特性
自动装箱 自动拆箱
Integerm = 128
Integern = 128
sop(“m==n:”+m==n);false
Integera = 127
Integerb = 127
sop(“a==b:”+a==b);true
因为当数值在byte范围内,对于新特性,如果该数值已经存在不会在开辟新的空间
public class StringDemo {
public static void main(String[] args) {
String s= "skkjkka";
System.out.println(reverseDemo(s,0,s.length()));
}
/*模拟一个trim方法,取出字符串两端的空格*/
private static String trimDemo(String s) {
int start=0;
int end=s.length()-1;
while(s.charAt(start)==' '&&start<=end){
start++;
}
while(s.charAt(end)==' '&&start<=end){
end--;
}
return s.substring(start,end+1);
}
/*将一个字符串反转,将字符串中指定部分进行反转*/
private static String reverseDemo(String s,int start,int end){
char[] arr = s.toCharArray();
char temp;
for (int i = start,j=end-1; i < j; i++,j--) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
return new String(arr);
}
/*获取一个字符串在另外一个人字符串中出现的次数*/
private static String getCount(String s,String key){
int count=0;
int index=0;
while((index=s.indexOf(key,index))!=-1){
index=index+key.length();
count++;
}
System.out.println(count);
return s;
}
/*获取两个字符串中最大相同子串,第一个动作,将短的那个串进行长度一次递减的子串打印*/
private static String getMaxSubString(String s1,String s2){
String max="",min="";
max=(s1.length()>=s2.length())?s1:s2;
min=(max==s1)?s2:s1;
for (int i = 0; i < min.length(); i++) {
for (int j = 0,k=min.length()-i; k!=min.length()+1; j++,k++) {
String temp = min.substring(j,k);
if(max.contains(temp)){
return temp;
}
}
}
return "";
}
}
-------
String类
字符串是一个特殊的对象
字符串一旦初始化就不可以被改变
★String s1 = “abc”;
Strings2 = new String(“abc”);
有什么区别?
s1在内存中有一个对象
s2在内存中有两个对象
★String类适用于描述字符串事物,那么他就提供了多个方法对字符串进行操作
(1)获取
(1.1)字符串中的包含的字符数,也就是字符串的长度 int length()
(1.2)根据位置获取位置上某个字符char charAt(int index);
(1.3)根据字符获取该字符在字符串中位置
intindexOf(int ch):返回的是ch在字符串中的第一次出现的位置
int indexOf(int ch,int fromIndex):从fromIndex制定位置开始,获取ch在字符串中出现的位置
intindexOf(String str):返回的是str在字符串中的第一次出现的位置
int indexOf(String str,int fromIndex):从fromIndex制定位置开始,获取str在字符串中出现的位置
intlastIndexOf(String str):
(2)判断
(2.1)字符串是否包含某一子串 contains(str)
(2.2)字符串中时候有内容 Boolean isEmpty()
(2.3)字符串是否是以指定内容开头 boolean startWidth(str)
(2.4) 字符串是否是以指定内容结尾booleanendWidth(str)
(2.5)判断字符串内容是否相同,复写了Object类中的equals方法
(2.6) 判断字符串内容是否相同 忽略大小写 booleanequalsIgnoreCase();
(3)转换
(3.1)将字符数组转成字符串
构造函数:String(char[])
String(char[],offset,count)
静态方法:
staticString copyValueOf(char[])
staticString copyValueOf(char[] data,int offset,int count)
staticString valueOf(char[])
(3.2)将字符串转成字符串数组
char[]toCharAarray();
(3.3)将字节数组转成字符串
构造函数:String(byte[])
String(byte [],offset,count)
(3.4)将字符串转成字节数组
byte[]getBytes()
(3.5)将基本数据类型转成字符串
static String valueOf(int) static StringvalueOf(double)
★特殊:字符串和字节数组在转换过程中,是可以制定编码表的
(4)替换
(4.1)Stringreplace(char oldchar,char new char)
(5)切割
String[]split(regex);
(6)子串,获取字符串中的一部分
Stringsubstring(begin);
Stringsubstring(begin,end)
(7)转换:取出空格,比较
(7.1)将字符串转成大写或者小写
StringtoUpperCase();
StringtoLowerCase()
(7.2)将字符串两端的多个空格去除
Stringtrim();
(7.3)对两个字符串进行自然顺序排序的比较
intcompareTo(String);
●StringBuffer
◆字符串的组成原理就是通过该类实现的
◆StringBuffer可以对字符串内容进行增删
◆StringBuffer是一个容器
◆很多方法与String相同
特点:
◆StringBuffer是可变长度的
◆StringBuffer可以直接操作多个数据类型
◆通过toString方法变成字符串
★(1)存储
StringBufferappend():将制定数据作为参数添加到已有数据结尾处
StringBufferinsert(index,数据)可以将数据插入到指定index指定位置
(2)删除
StringBufferdelete(start,end):删除缓冲区中的数据,包含start,不包含end
StringBufferdeleteCharAt(index):删除指定位置的数据
(3)获取
charcharAt(int index)
intindexOf(String str)
intlastIndexOf(String str)
intlength()
Stringsubstring(int start,int end)
(4)修改
StringBufferreplace(start,end,string)
voidsetCharAt(int index,char)
(5)反转
StringBufferreverse()
(6)将缓冲区中指定数据存储到指定字符数组中
voidgetChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步
StringBuilder是线程不同步的
*jdk升级原因 1提高效率2简化书写3提高安全性
●基本数据类型对象包装类
byte Byte
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用
就是用于基本数据类型和字符串类型之间做转换
◆基本数据类型转成字符串
基本数据类型+“”
基本数据类型.toString(基本数据类型值)
如Integer.toString(34)
◆字符串转成基本数据类型
xxxa=xxx.parseXXX(“ ”);
Integer i = new Integer("123");
int intValue =i.intValue();
◆十进制转成其它进制
toBinaryString()
toHexString()
toOctalString()
其他进制转成十进制
parsrInt(“110”,10)
●JDK1.5版本以后出现的新特性
自动装箱 自动拆箱
Integerm = 128
Integern = 128
sop(“m==n:”+m==n);false
Integera = 127
Integerb = 127
sop(“a==b:”+a==b);true
因为当数值在byte范围内,对于新特性,如果该数值已经存在不会在开辟新的空间
public class StringDemo {
public static void main(String[] args) {
String s= "skkjkka";
System.out.println(reverseDemo(s,0,s.length()));
}
/*模拟一个trim方法,取出字符串两端的空格*/
private static String trimDemo(String s) {
int start=0;
int end=s.length()-1;
while(s.charAt(start)==' '&&start<=end){
start++;
}
while(s.charAt(end)==' '&&start<=end){
end--;
}
return s.substring(start,end+1);
}
/*将一个字符串反转,将字符串中指定部分进行反转*/
private static String reverseDemo(String s,int start,int end){
char[] arr = s.toCharArray();
char temp;
for (int i = start,j=end-1; i < j; i++,j--) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
return new String(arr);
}
/*获取一个字符串在另外一个人字符串中出现的次数*/
private static String getCount(String s,String key){
int count=0;
int index=0;
while((index=s.indexOf(key,index))!=-1){
index=index+key.length();
count++;
}
System.out.println(count);
return s;
}
/*获取两个字符串中最大相同子串,第一个动作,将短的那个串进行长度一次递减的子串打印*/
private static String getMaxSubString(String s1,String s2){
String max="",min="";
max=(s1.length()>=s2.length())?s1:s2;
min=(max==s1)?s2:s1;
for (int i = 0; i < min.length(); i++) {
for (int j = 0,k=min.length()-i; k!=min.length()+1; j++,k++) {
String temp = min.substring(j,k);
if(max.contains(temp)){
return temp;
}
}
}
return "";
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统