使用StringBuffer实现两个字符的拼接

实现的功能:
将一个char数组中每一个字符与一个特殊字符拼成一个字符串后赋值给String数组中对应下标元素

public static void customCopyChars(char[] source, String[] destination, int flag){
        char specialCharacters; 
        if(flag == 0){
            specialCharacters = '@';
        }else if (flag == 1){
            specialCharacters = '*';
        }else {
            specialCharacters = '&';
        }
        
        for (int i = 0; i < source.length; i++){
            StringBuffer strBuf = new StringBuffer(); // 下划线命名法
            strBuf.append(source[i]);
            strBuf.append(specialCharacters);
            destination[i] = strBuf.toString();
            System.out.println("destination[i]: " + destination[i]);
        }
        
        for(int j = 0; j < destination.length; j++){
            System.out.println(destination[j]);
    }
}

其结果如下:

java字符串每两个字符存入一个字节数组 java把两个字符串拼接_java

使用+号拼接两个字符会导致的问题

如果直接使用+连接两个字符,会出现如下错误

java字符串每两个字符存入一个字节数组 java把两个字符串拼接_System_02


可以看出,当两个字符使用+连接时,返回的值是int类型。实际上这个值就是两个字符ASCII值相加之后的结果。

尝试将返回来的int类型转成String类型

采用3种将int类型转成String类型的方法

destination[i] = String.valueOf(source[i] + specialCharacters);
destination[i] = Integer.toString(source[i] + specialCharacters);
destination[i] = source[i] + specialCharacters + "";

其结果如下:

java字符串每两个字符存入一个字节数组 java把两个字符串拼接_字符串_03