Day019 String与其它类型之间的转换
Posted 南方风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day019 String与其它类型之间的转换相关的知识,希望对你有一定的参考价值。
String与不同数据类型的转换
String与基本数据类型之间的转换
-
字符串--->基本数据类型、包装类
- Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型。
- 类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型。
-
基本数据类型、包装类--->字符串
- 调用String类的public String valueOf(int n)可将int型转换为字符串
- 调用相应的valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(double d)、valueOf(boolean b)可由参数的相应类型到字符串的转换。
String str1="123";
int num=Integer.parseInt(str1);
String str2 = String.valueOf(num);
String与字符数组(char[])之间的转换
- String --> char[]:调用String的toCharArray()方法。
- char[] ---> String:调用String的构造器。
public static void main(String[] args) {
String str1="abc123";
char[] charArray = str1.toCharArray();
for (char c : charArray) {
System.out.println(c);
}
char[] arr=new char[]{\'h\',\'e\',\'l\',\'l\',\'o\'};
String str2 = new String(arr);
System.out.println(str2);
}
输出结果
a
b
c
1
2
3
hello
String与字节数组(byte[])之间的转换
-
字节数组(byte[])--->字符串(String)
- String(byte[]):通过使用平台的默认字符集解码指定的byte数组,构成一个新的String。
- String(byte[],int offset,int length):用指定的字节数组的一部分,即从数组起始位置offset开始取length哥字节构造一个字符串对象。
-
字符串(String)--->字节数组(byte[])
- public byte[] getBytes():使用平台的默认字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中。
- public byte[] getBytes(String charsetName):使用指定的字符集将此String编码到byte序列,并将结果存储到新的byte数组。
public static void main(String[] args) throws UnsupportedEncodingException {
String str1="abc123中国";
byte[] bytes = str1.getBytes();//使用默认的字符集,进行编码(UTF-8)
System.out.println(Arrays.toString(bytes));
byte[] gbks= str1.getBytes("gbk");//使用gbk字符集进行编码
System.out.println(Arrays.toString(gbks));
System.out.println("*****************************");
String str2 = new String(bytes);//使用默认的字符集,进行解码(UTF-8)
System.out.println(str2);
String str3 = new String(gbks);
System.out.println(str3);//出现乱码,原因:编码集和解码集不一致
String str4 = new String(gbks, "gbk");
System.out.println(str4);//没有出现乱码,原因:编码集和解码集一致
}
输出结果
[97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67]
[97, 98, 99, 49, 50, 51, -42, -48, -71, -6]
*****************************
abc123中国
abc123�й�
abc123中国
- 编码:字符串(能看懂)---->字节(看不懂的二进制数据)
- 解码:字节(看不懂的二进制数据)------>字符串(能看懂)
- 乱码:编码和解码使用了不同的方式。
以上是关于Day019 String与其它类型之间的转换的主要内容,如果未能解决你的问题,请参考以下文章
《从零開始学Swift》学习笔记(Day48)——类型检查与转换
Golang basic_leaming基本数据类型之间的转换