黑马程序员之java中操作字符串的常用类String和StringBuffer学习
2014-03-09 16:39
746 查看
-------
android培训、java培训、期待与您交流! ----------
String类中常用方法:
将字符数组转成字符串;
static String copyValueof(char[] data,int offset,int count)
static String copyValueOf(char[])
static String valueOf(char[]);
将基本数据类型转成字符串:
static String valueOf(int);
static String valueOf(double);
将字节数组转成字符串:
String(byte[]);
String(byte[],offset,count)//将字节数组中的一部分转成字符串
将字符串转成字符数组:
char[] toCharArray();
将字符串转成字节数组:
byte[] getBytes();
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
替换字符串中某个字符(替换的函数不会改变原来串,只会产生一个新串)
String replace(oldchar,newchar);//如果替换的字符不存在返回原串
String replace(CharSequence target,CharSequence replacement);
切割:String[] split(regex);
子串,获取字符串中的一部分:
String subString(int begin);//如果角标不存在,会出现字符串角标越界异常
String subString(int begin,int end);
转换,去除空格,比较:
将字符串转成大写或小写:
String toUpperCase();
String toLoweCase();
将字符串两端的多个空格去除:
String trim();
对两个字符串进行自然顺序的比较:
int compareTo(String str);//大于:整数;等于:0;小于:负数
1,去掉字符串头尾空格:
思路:用charAt函数判断第一个不为空的角标,和倒数第一个不为空的角标;然后再用subString函数截取;
2,将字符串翻转:
思路:1,将字符串变成数组;2,对数组反转;将数组变成字符串
3,获取一个字符串在另一个字符串中出现的次数:
思路:1,第一个计数器;2,获取字符串第一次出现的位置;3,从第一次出现位置后剩余的字符串中继续获取字符串出现的位置;
4,当获取不到时,计数完成;
/*
public static int getSubCount(String str,String key){
int count = 0;
int index = 0
4000
;
while((index=str.indexof(key,index)) != -1){
index = index+key.length();
count++;
}
return count;
}
*/
public static int getSubCount(String str,String key){
int count = 0;
int index = 0;
while(str.indexOf(key)!=-1){
str = str.substring(index+key.length());
System.out.println("str="+str);
count++;
}
return count;
}
4,获取两个字串中最大相同子串
public static String getMaxSubString(String s1,String s2){
String max = "",min = "";
max = (s1.length()>s2.length())?s1:s2;
min = (max==s1)?s2:s1;
for(int x=0;x<min.length;x++){
for(int y=0,z<min.length()-x;z!=min.length()+1;y++,z++){
String temp = min.substring(y,z);
if(max.contains(temp))
return temp;
}
}
}
StringBuffer类:
StringBuffer:可以对字符串修改,长度可变,可以操作多个数据类型,最终会toString方法变成字符串;
String的字符串不能修改。
StringBuffer是一个容器:
1,存储:append,insert(可以再指定位置插入数据);
2,删除:StringBuffer delete(start,end)包含start不含end,
StringBuffer deleteCharAt(indext)删去指定位置字符;
3,获取:char charAt(index);indexOf(str);lastIndexOf(str);substring(start,end);
4,修改: StringBuffer replace(start,end,string);void setCharAt(int index,char ch)//修改指定位置的字符为ch;
5,反转:StringBUffer reverse();
6, 将缓冲区中指定位置的字符存到指定字符数组中指定位置
void getChars(int srcBegin,int srcEnd,char[] dst,int dsgBegin);
StringBuffer sb = new StringBuffer("abcdefg");
char[] chs = new char[4];
sb.getChars(1,4,chs,1);//将sb中1到4位置的字符存到chs数组中,从数组的1位置开始存;
StringBuilder(1.5以后):
构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。方法和StringBuffer一样;
StringBuffer是线程同步,StringBuilder是线程不同步;
基本数据类型对象包装类:
常见作用:就是用于基本数据类型和字符串类型之间转换;
基本数据类型转字符串:基本数据类型+"";
基本数据类型.toString(基本数据类型值);如:Integer.toString(34);
字符串转成基本数据类型:xxx a = Xxx.parseXxx(str);//静态调用方式
Integer.parseInt(str);
Long.parseLong(str);
Integer i = new Integer("123");
int num = i.intValue();//对象调用方式
十进制转成其他进制:toBinaryString()十;toHexString()十六;toOctalString()八;
其他进制转成十进制:parseInt(string,radix);如:int x = Integer.parseInt("3c",16);将字符串按16进制转成十进制
使用StringBuilder:
StringBuilder sb = new StringBuilder("abcdefg");
sb.append("hi"); //abcdefghi
sb.insert(1,"e");//aebcdefg
sb.deleteCharAt(2);//abdefg
sb.delete(2,4);//abefg
sb.setLength(4);//abcd
sb.setCharAt(0,'k');//kbcdefg
sb.replace(0,2,"hehe");//hehecdefg
使用StringBuffer类:
StringBuffer sb = new StringBuffer();
sb.append(12).append("haha");//方法调用链。
String s = "abc"+4+'q';
s = newStringBuffer().append("abc").append(4).append('q').toString();
-------
android培训、java培训、期待与您交流! ----------
android培训、java培训、期待与您交流! ----------
String类中常用方法:
将字符数组转成字符串;
static String copyValueof(char[] data,int offset,int count)
static String copyValueOf(char[])
static String valueOf(char[]);
将基本数据类型转成字符串:
static String valueOf(int);
static String valueOf(double);
将字节数组转成字符串:
String(byte[]);
String(byte[],offset,count)//将字节数组中的一部分转成字符串
将字符串转成字符数组:
char[] toCharArray();
将字符串转成字节数组:
byte[] getBytes();
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
替换字符串中某个字符(替换的函数不会改变原来串,只会产生一个新串)
String replace(oldchar,newchar);//如果替换的字符不存在返回原串
String replace(CharSequence target,CharSequence replacement);
切割:String[] split(regex);
子串,获取字符串中的一部分:
String subString(int begin);//如果角标不存在,会出现字符串角标越界异常
String subString(int begin,int end);
转换,去除空格,比较:
将字符串转成大写或小写:
String toUpperCase();
String toLoweCase();
将字符串两端的多个空格去除:
String trim();
对两个字符串进行自然顺序的比较:
int compareTo(String str);//大于:整数;等于:0;小于:负数
1,去掉字符串头尾空格:
思路:用charAt函数判断第一个不为空的角标,和倒数第一个不为空的角标;然后再用subString函数截取;
2,将字符串翻转:
思路:1,将字符串变成数组;2,对数组反转;将数组变成字符串
3,获取一个字符串在另一个字符串中出现的次数:
思路:1,第一个计数器;2,获取字符串第一次出现的位置;3,从第一次出现位置后剩余的字符串中继续获取字符串出现的位置;
4,当获取不到时,计数完成;
/*
public static int getSubCount(String str,String key){
int count = 0;
int index = 0
4000
;
while((index=str.indexof(key,index)) != -1){
index = index+key.length();
count++;
}
return count;
}
*/
public static int getSubCount(String str,String key){
int count = 0;
int index = 0;
while(str.indexOf(key)!=-1){
str = str.substring(index+key.length());
System.out.println("str="+str);
count++;
}
return count;
}
4,获取两个字串中最大相同子串
public static String getMaxSubString(String s1,String s2){
String max = "",min = "";
max = (s1.length()>s2.length())?s1:s2;
min = (max==s1)?s2:s1;
for(int x=0;x<min.length;x++){
for(int y=0,z<min.length()-x;z!=min.length()+1;y++,z++){
String temp = min.substring(y,z);
if(max.contains(temp))
return temp;
}
}
}
StringBuffer类:
StringBuffer:可以对字符串修改,长度可变,可以操作多个数据类型,最终会toString方法变成字符串;
String的字符串不能修改。
StringBuffer是一个容器:
1,存储:append,insert(可以再指定位置插入数据);
2,删除:StringBuffer delete(start,end)包含start不含end,
StringBuffer deleteCharAt(indext)删去指定位置字符;
3,获取:char charAt(index);indexOf(str);lastIndexOf(str);substring(start,end);
4,修改: StringBuffer replace(start,end,string);void setCharAt(int index,char ch)//修改指定位置的字符为ch;
5,反转:StringBUffer reverse();
6, 将缓冲区中指定位置的字符存到指定字符数组中指定位置
void getChars(int srcBegin,int srcEnd,char[] dst,int dsgBegin);
StringBuffer sb = new StringBuffer("abcdefg");
char[] chs = new char[4];
sb.getChars(1,4,chs,1);//将sb中1到4位置的字符存到chs数组中,从数组的1位置开始存;
StringBuilder(1.5以后):
构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。方法和StringBuffer一样;
StringBuffer是线程同步,StringBuilder是线程不同步;
基本数据类型对象包装类:
常见作用:就是用于基本数据类型和字符串类型之间转换;
基本数据类型转字符串:基本数据类型+"";
基本数据类型.toString(基本数据类型值);如:Integer.toString(34);
字符串转成基本数据类型:xxx a = Xxx.parseXxx(str);//静态调用方式
Integer.parseInt(str);
Long.parseLong(str);
Integer i = new Integer("123");
int num = i.intValue();//对象调用方式
十进制转成其他进制:toBinaryString()十;toHexString()十六;toOctalString()八;
其他进制转成十进制:parseInt(string,radix);如:int x = Integer.parseInt("3c",16);将字符串按16进制转成十进制
使用StringBuilder:
StringBuilder sb = new StringBuilder("abcdefg");
sb.append("hi"); //abcdefghi
sb.insert(1,"e");//aebcdefg
sb.deleteCharAt(2);//abdefg
sb.delete(2,4);//abefg
sb.setLength(4);//abcd
sb.setCharAt(0,'k');//kbcdefg
sb.replace(0,2,"hehe");//hehecdefg
使用StringBuffer类:
StringBuffer sb = new StringBuffer();
sb.append(12).append("haha");//方法调用链。
String s = "abc"+4+'q';
s = newStringBuffer().append("abc").append(4).append('q').toString();
-------
android培训、java培训、期待与您交流! ----------
相关文章推荐
- JAVA学习笔记——字符串操作(String,StringBuffer,StringBuilder)
- java中字符串操作string、stringBuffer和stringBuilder的区别以及其相关操作技术
- 黑马程序员-java学习之String字符串
- 黑马程序员_java学习笔记之(StringBuider&Stringbuffer)区别
- 四:Java之字符串操作String、StringBuffer和StringBuilder
- 黑马程序员java学习日记——字符串String
- (五)黑马程序员——Java中的字符串操作类(String、StringBuilder、StringBuffer)
- day7 常用类字符串处理类--String、StringBuffer、StringBuilder 自动装箱、拆箱 Object类 Java 的异常处理机制
- 四:Java之字符串操作String、StringBuffer和StringBuilder
- Java字符串操作类学习笔记:String、StringBuffer、StringBuilder
- 黑马程序员-Java基础-String和StringBuffer学习笔记
- 黑马程序员java学习笔记——String字符串及StringBubuffer容器
- java 常用类之String-StringBuffer
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- 黑马程序员_Java学习日记_JAVA中API中对象String和StringBuffer/StringBuilder
- java string,stringbuffer,字符串遍历
- JAVAWEB开发之redis学习(二)——string相关的操作命令
- JAVA——(1)基础补充之运算符、字符串、数组、内存分配(String,StringBuffer,StringBuilder的区别
- 黑马程序员——java基础——常用类String
- 【Lua学习笔记】 --> 《字符串string与table的函数操作》