字符型数组转换字符串有两种方法。
第一种方法,通过字符串的构造方法进行转换。
char[]a={'a','b','c'}
Stringb=newString()
第二种方法,通过字符串的valueOf()方法转换。
char[]a={'a','b','c'}
Stringb=String.valueOf(a)
代码如下:
import java.util.Arraysimport java.util.Scanner
public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in)
// 1.键盘录入一个字符串
String str = scanner.nextLine()
char[] chars = new char[str.length()]
// 2.将该字符串变成字符数组(不能使用toCharArray()方法)
for (int i = 0 i < str.length() i++) {
char ch = str.charAt(i)
// 5.将字符数组中索引为偶数的元素变成'~'
ch = (i % 2 == 0) ? '~' : ch
// 3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
ch = (ch >= 'A' && ch <= 'Z') ? (char)(ch - 32) : ch
chars[i] = ch
}
// 4.如果第一位和最后一位的内容不相同,则交换
if (chars[0] != chars[chars.length - 1]) {
char ch = chars[0]
chars[0] = chars[chars.length - 1]
chars[chars.length - 1] = ch
}
// 6.打印数组元素的内容
System.out.println(Arrays.toString(chars))
}
}
java不同编码之间进行转换,都需要使用unicode作为中转。
String str = "任意字符串"
str = new String(str.getBytes("gbk"),"utf-8")
备注说明:
str.getBytes("UTF-8")意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8")意思是以UTF-8的编码生成字符串
举例:
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer()
sb.append(xml)
String xmString = ""
String xmlUTF8=""
try {
xmString = new String(sb.toString().getBytes("UTF-8"))
xmlUTF8 = URLEncoder.encode(xmString, "UTF-8")
System.out.println("utf-8 编码:" + xmlUTF8)
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
// return to String Formed
return xmlUTF8
扩展资料:
UTF-8编码规则:
如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。
实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。
Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
参考资料来源:百度百科:UTF-8