您的位置:首页 > 职场人生

黑马程序员之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培训、期待与您交流! ----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐