天天看點

字元數組,字元串數組,字元串的互相轉換

怎麼把字元數組轉換成字元串?
例如:char[] a={'a','b','c'};
最常用的方法是通過toString方法:
Arrays.toString(a);可是這樣得到的字元串是[a,b,c],而不是“abc”。
那麼怎麼變成“abc”呢?
下面的兩種方法最常見,也是應用最廣泛的。
1:直接聲明,String s=new String(a);
2:String.valueOf(Char[] a);
這個轉換很簡單,下面就來看看字元串數組怎麼轉換成字元串吧。因為這個string類是不可變類,是以就需要用到StringBuffer類。
下面來舉例子說明
String[] str = {"abc", "bcd", "def"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++){
 sb. append(str[i]);
}
String s = sb.toString();
其實可以把StringBuffer換成StringBuilder因為這個是線程安全的,而且速度略快。
其實很多情況字元數組或者字元串數組都是要求将數字和字母分開,那麼這時就可以有很多種方法,下面介紹幾個比較簡單的方法:
    1:String s = "abcd0a123".replaceAll("\\d+", "");
    String n = "abcd01a23".replaceAll("\\D+", "");


    2:Pattern p_number = Pattern.compile("\\d+");//比對數字
    Pattern p_char = Pattern.compile([a-zA-Z]+);//比對字母

    3:使用toCharArray()方法,把字元串變成字元數組,然後一個一個周遊,找到符合數字的就放到整數數組中,不是就放到字元數組中。

    使用了正規表達式,這也是正規表達式的強大之處。
    那麼分開之後,經常是要求把數字字元串變成單個數字,那麼問題來了,怎麼去轉換呢?
    下面的代碼很好的诠釋了toCharArray()方法的簡潔之處了
public static void main(String[] args) throws Exception 
    { 
        String a = "1234567";
        char b[] = a.toCharArray();
        for(int i=0;i<b.length;i++)
        {
            String c = b[i]+"";
            int d = Integer.parseInt(c);
            System.out.println(d);
        }
    }
 當然還有一個方法也很簡單就是挨個周遊,或者使用Integer.valueOf()方法。
 char[] a={'1','2','3'};
String mString=String.valueOf(a);
int u=Integer.valueOf(mString);
 System.out.println(u);
 其實還有很多方法,在此就不列舉了(主要是自己沒有想到)。