总结String的常用方法

 在项目中String是不可避免使用,包括数据之间的相互传值,在处理id时,经常用到string的一些方法,现在总结一下:

认识String:
String 默认使用final修饰,不能被继承;java字符串在内存中采用nunicode编码方式,任何一个字符对应两个字节的定长编码;
String是放在常量池中,并尽量使用同一对象,重用静态字符串;

IndexOf
使用indexOf实现检索;
Int indexOf(String str) 在字符串中检索到str,返回第一次出现的位置,如果检索不到,那就返回-1;此方法尝尝用来检验字符串中有没有包含某个字符串;
Int indexOf(String str,int fromIndex) 从字符串的指定位置开始检索
Int lastIndexOf(String str,int from) str在字符串中多次出现时,将返回最后一个出现的位置

Substring
使用substring获取子字符串
String substring(int beginIndex,int endIndex) 返回字符串中从下标开始到enindex结束的子字符串;注意:含头不含尾
String substring(int beginIndex) 返回从该下标到结尾的子字符串;(含头含尾)
一般我们经常使用该方法来去除字符串中最后的,号
String str.substring(0,str.length()-1);

Trim
去掉一个字符串的前后的空余
String username = “ good man ”
Username = username.trim();// good man

charAt
Char charAt(int index); 用于返回字符串指定未知的字符;

startsWith和endsWith
检测一个字符串是否以指定字符串开头或结尾
String str = “Thinking in java”;
System.out.println(str.endWith(“java”));//true

大小写的转换
str.toUpperCase();转为大写
Str.toLowerCase();转为小写

valueOf
将其他类型转换为字符串类型

/*
* valueOf
* 将其他类型转为字符串类型
*/
double pl = 3.1415926;
int value = 123;
boolean flag = true;
char[] charArr = {‘1’,’2’,’3’,’4’};
String str1 = String.valueOf(pl);
String str2 = String.valueOf(value);
String str3 = String.valueOf(flag);
String str4 = String.valueOf(charArr);
System.out.println(str1);//3.1415926
System.out.println(str2);//123
System.out.println(str3);//true
System.out.println(str4);//1234

Replace/replaceAll
替换字符串
Str = str.replace(“”,””);//性能偏低

Equals() //判断字符串是否相等
equalsIgnoreCase() //忽略大小写的情况下比较内容是否相等
== //判断内容与地址是否相同

字符串的转换:
1、将字符串转换为字符数组
Public char[] toCharArray();
2、 将字符串转为字符串数组
就是用split()方法;

下面是自己做的一些字符串的方法,其中有字符串之间的去重功能,这个在项目中也是用到的(比如去除重复的id)

public static void main(String[] args) {

    /*
     * valueOf
     * 将其他类型转为字符串类型
     */
    double pl = 3.1415926;
    int value = 123;
    boolean flag = true;
    char[] charArr = {'1','2','3','4'};
    String str1 = String.valueOf(pl);
    String str2 = String.valueOf(value);
    String str3 = String.valueOf(flag);
    String str4 = String.valueOf(charArr);

    System.out.println(str1);//3.1415926
    System.out.println(str2);//123
    System.out.println(str3);//true
    System.out.println(str4);//1234


    /*
     * 字符串与int之间的转化
     */
    String a = "123";
    int aa = Integer.parseInt(a);
    int bb = 456;
    String b = Integer.toString(bb);
    System.out.println(aa);
    System.out.println(b);


    /*
     * 字符串与doube之间转化
     * 
     */
    String c = "3.14";
    double cc = Double.parseDouble(c);
    System.out.println(cc);


    /*
     * 字符串与date之间转化
     */
    //date转为String
    Date date = new  Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String dateStr =  sdf.format(date);

    //String转为date
    Date date1 = null;
    try {
        date1 = sdf.parse(dateStr);
    } catch (ParseException e) {
        e.printStackTrace();
    }        
    System.out.println(dateStr);
    System.out.println(sdf.format(date1));


    demo1 demo = new demo1();
    demo.distinct1();
    demo.distinct2();



}

//字符创之间去重-情景1
public String distinct1(){
    String str1 = "12312,122312,12334,56658,89895455,234,456";
    String str2 = "234,456,12334";
    StringBuffer strBf = new StringBuffer();
    String[] strArr2 = str2.split(","); 
    //现剔除str2中存在的
    for (int i = 0; i < strArr2.length; i++) {
        if(str1.indexOf(strArr2[i])!= -1){
            str1 = str1.replace(strArr2[i], "");
        }       
    }
    //下面主要是实现去重后的str1的重新组装,注意要去掉最后的“,”号
    String[] strArr1 = str1.split(",");
    for (int s = 0; s < strArr1.length; s++) {
        if(strArr1[s] != ""){
            if(s != strArr1.length-1 ){
                strBf.append(strArr1[s]+",");
            }else{
                strBf.append(strArr1[s]);
            }
        }
    }
    str1 = new String(strBf);
    System.out.println(str1);   
    return str1;
}

//字符串去重-情景2
public String distinct2(){
    String aa = "asdaeaaasssfdfdggfgfywvcj";
    StringBuffer strBuf = new StringBuffer();
    char[] aaArr = aa.toCharArray();
    for (int i = 0; i < aaArr.length; i++) {
        if(strBuf.indexOf(String.valueOf(aaArr[i])) == -1){
            strBuf.append(aaArr[i]);
        }
    }
    aa = new String(strBuf);
    System.out.println(aa);
    return aa;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章