------- 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();
对两个字符串进行自然顺序的比较:
1,去掉字符串头尾空格:int compareTo(String str);//大于:整数;等于:0;小于:负数
思路:用charAt函数判断第一个不为空的角标,和倒数第一个不为空的角标;然后再用subString函数截取;2,将字符串翻转:
思路:1,将字符串变成数组;2,对数组反转;将数组变成字符串3,获取一个字符串在另一个字符串中出现的次数:
思路:1,第一个计数器;2,获取字符串第一次出现的位置;3,从第一次出现位置后剩余的字符串中继续获取字符串出现的位置;
4,当获取不到时,计数完成;/*
public static int getSubCount(String str,String key){
int count = 0;
int index = 0;
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以后):
StringBuffer是线程同步,StringBuilder是线程不同步;构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。方法和StringBuffer一样;
基本数据类型对象包装类:
常见作用:就是用于基本数据类型和字符串类型之间转换;
基本数据类型转字符串:基本数据类型+"";
基本数据类型.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();