(PASS)字符数组字符串数组 和 字符串 的相互转换

1,字符数组 转换为 字符串

java可以使用两种方法直接将字符数组转为字符串。

方法1:直接在构造String时转换。
char[] data = {'a', 'b', 'c'};
String str = new String(data);

方法2:调用String类的方法转换。
//String.valueOf(char[] ch);

String str = String.valueOf(data);

2,字符串数组转换为字符串

如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法 

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();

//William感悟:当然可以通过 String的字符串拼接,但是这样会不断创建String对象,然后销毁对象,这样有点浪费内存,还不如StringBuffer  

3,字符串 转换为 字符数组

这个要看你的具体需求了.如果是有分隔符的那种例如"a,b,c";就直接分割就行了.
String string = "a,b,c";
String [] stringArr= string.split(","); //注意分隔符是需要转译滴...
如果是"abc"这种字符串,就直接
String string = "abc" ;
char [] stringArr = string.toCharArray(); //注意返回值是char数组
如果要返回byte数组就直接使用getBytes方法就ok了~~
String string = "abc" ;
byte [] stringArr = string.getBytes();

4,字符串 转换为 字符串数组

package demo01;
/**
 * 
 * @ClassName: ArrayAndString
 * @Description: 
 * @author William_Dai 
 * @date 2018年8月15日
 *
 */
public class ArrayAndString {
    public static void main(String[] args) {
        /**1,数组转换为字符串*/
        //方法1:直接在构造String时转换。
        char[] data = {'a', 'b', 'c'};
        String str = new String(data);
        System.out.println(str);
        
        //方法2:调用String类的方法转换。
        String str2 = String.valueOf(data);
        System.out.println(str2);
        
        /**2,字符串数组转换为字符串*/
        //如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法 
        String[] str3 = {"abc", "bcd", "def"};
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < str3.length; i++){
         sb. append(str3[i]);
        }
        String str4 = sb.toString();
        System.out.println(str4);
        
        //William感悟:当然可以通过 String的字符串拼接,但是这样会不断创建String对象,然后销毁对象,这样有点浪费内存,还不如StringBuffer  
        
        
        /**3,字符串转换为数组*/

        //这个要看你的具体需求了.如果是有分隔符的那种例如"a,b,c";就直接分割就行了.
        String str5 = "a,b,c";
        String [] strArr= str5.split(",");
        for(int i = 0 ; i < strArr.length; i ++){
            System.out.print(strArr[i]+" ");
        }
        //如果是"abc"这种字符串,就直接
        String str6 = "abc" ;
        char [] stringArr = str6.toCharArray(); //注意返回值是char数组
        for(int i = 0 ; i < stringArr.length; i ++){
            System.out.print(stringArr[i]+" ");
        }
        //如果要返回byte数组就直接使用getBytes方法就ok了~~
        String str7 = "abc" ;
        byte [] intArr = str7.getBytes();
        for(int i = 0 ; i < intArr.length; i ++){
            System.out.print(intArr[i]+" ");
        }

        /**4,字符串转换为字符串数组*/
        String str8 = "Are you OK ?";
        String [] strArr2= str8.split(" "); 
        for(int i = 0 ; i < strArr2.length; i ++){
            System.out.println(strArr2[i]);
        }
    }

}
原文地址:https://www.cnblogs.com/william-dai/p/9480662.html