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