今天我们一起来学习一下String API 转换功能。(getBytes、toCharArray、valueOf、toLowerCase、toUpperCase、concat、+)
下面我们通过官方API+Coding的方式进行学习:
String s = "Hello World!";
通过getBytes将字符串->字节数组:
getBytes
public byte[] getBytes()
-
使用平台的默认字符集将此
String
编码为 byte 序列,并将结果存储到一个新的 byte 数组中。当此字符串不能使用默认的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用
CharsetEncoder
类。 -
-
-
返回:
- 所得 byte 数组 从以下版本开始:
- JDK1.1
byte[] bytes = s.getBytes();
for(byte b : bytes){
System.out.print((char)b + " ");
}
输出:
H e l l o W o r l d !
通过toCharArray将字符串->字符数组:
toCharArray
public char[] toCharArray()
- 将此字符串转换为一个新的字符数组。
-
-
-
返回:
- 一个新分配的字符数组,它的长度是此字符串的长度,它的内容被初始化为包含此字符串表示的字符序列。
char[] chars = s.toCharArray();
for(char c : chars){
System.out.print(c + " ");
}
输出:
H e l l o W o r l d !
通过valueOf将xxx->字符串:
valueOf
public static String valueOf(char c)
-
返回
char
参数的字符串表示形式。 -
-
-
参数:
-
c
- 一个char
。
返回:
-
一个长度为
1
的字符串,它包含参数c
的单个字符。
-
System.out.println("String.valueOf(chars):" + String.valueOf(chars));
输出:
String.valueOf(chars):Hello World!
通过toLowerCase进行小写转换:
toLowerCase
public String toLowerCase()
-
使用默认语言环境的规则将此
String
中的所有字符都转换为小写。这等效于调用toLowerCase(Locale.getDefault())
。注: 此方法与语言环境有关,如果用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,
"TITLE".toLowerCase()
在 Turkish(土耳其语)语言环境中返回"t?tle"
,其中“?”是 LATIN SMALL LETTER DOTLESS I 字符。对于与语言环境有关的字符,要获得正确的结果,请使用toLowerCase(Locale.ENGLISH)
。 -
-
-
返回:
-
要转换为小写的
String
。
另请参见:
-
toLowerCase(Locale)
-
要转换为小写的
System.out.println("s.toLowerCase():" + s.toLowerCase());
输出:
s.toLowerCase():hello world!
通过toUpperCase进行大写转换:
toUpperCase
public String toUpperCase()
-
使用默认语言环境的规则将此
String
中的所有字符都转换为大写。此方法等效于toUpperCase(Locale.getDefault())
。注: 此方法与语言环境有关,如果用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,
"title".toUpperCase()
在 Turkish(土耳其语)语言环境中返回"T?TLE"
,其中“?”是 LATIN CAPITAL LETTER I WITH DOT ABOVE 字符。对于与语言环境有关的字符,要获得正确的结果,请使用toUpperCase(Locale.ENGLISH)
。 -
-
-
返回:
-
要转换为大写的
String
。
另请参见:
-
要转换为大写的
System.out.println("s.toUpperCase():" + s.toUpperCase());
输出:
s.toUpperCase():HELLO WORLD!
需要注意的是,如果进行大小写转换并没有改变原字符串,而是生成新字符串。
此时输出原字符串,原字符串不变:
System.out.println(s);
输出:
Hello World!
通过concat进行字符串连接:
concat
public String concat(String str)
-
将指定字符串连接到此字符串的结尾。
如果参数字符串的长度为
0
,则返回此String
对象。否则,创建一个新的String
对象,用来表示由此String
对象表示的字符序列和参数字符串表示的字符序列连接而成的字符序列。示例:
"cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together"
-
-
-
参数:
-
str
- 连接到此String
结尾的String
。
返回:
- 一个字符串,它表示在此对象字符后连接字符串参数字符而成的字符。
-
System.out.println("s.concat(s):" + s.concat(s));
输出:
s.concat(s):Hello World!Hello World!
需要说明的是用“+”有同样的效果:
System.out.println("s + s:" + s + s);
输出:
s + s:Hello World!Hello World!