1. 程式人生 > >字元陣列,字串陣列,字串的相互轉換

字元陣列,字串陣列,字串的相互轉換

怎麼把字元陣列轉換成字串?
例如: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);
 其實還有很多方法,在此就不列舉了(主要是自己沒有想到)。