Table of Contents
ToggleJava Convert String to Char
對包含 char 的字元進行運算時,通常會使用轉換成 char ,從文本字段或文本區域讀取資料時,輸入的資料都會作為字串接收,將字串轉換為 char ,可以使用 charAt 、 toCharArray 、 getChars 等方法進行操作, Java String Char 任務是將該字串轉換為字元,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- string
| +- StringToCharTest.java
單元測試
Java String to Char 提供字串轉換成字元等操作。
charAt
Java String to Char 使用 charAt 轉換成字元。
@Test
public void charAt() {
String value = "gradle 161";
char result = value.charAt(2);
System.out.println(result);
assertEquals('a', result);
result = value.charAt(7);
System.out.println(result);
assertEquals('1', result);
for (int i = 0; i < value.length(); i++) {
result = value.charAt(i);
System.out.print(result);
}
}
true
true
true
false
charAtThrowException
Java String to Char 使用 charAt 轉換成字元,索引超出字串長度,會拋出例外。
@Test(expected = StringIndexOutOfBoundsException.class)
public void charAtThrowException() {
String value = "gradle 161";
char result = value.charAt(2);
System.out.println(result);
assertEquals('a', result);
result = value.charAt(11);
System.out.println(result);
}
a
java.lang.StringIndexOutOfBoundsException: String index out of range: 11
at java.lang.String.charAt(String.java:658)
at org.ruoxue.java_147.conversion.StringToCharTest.charAtThrowException(StringToCharTest.java:35)
toCharArray
Java String to Char 使用 toCharArray ,轉換成字元陣列。
@Test
public void toCharArray() {
String value = "gradle 161";
char[] result = value.toCharArray();
System.out.println(Arrays.toString(result));
assertEquals(10, result.length);
value = "161";
result = value.toCharArray();
System.out.println(Arrays.toString(result));
assertEquals(3, result.length);
}
[g, r, a, d, l, e, , 1, 6, 1]
[1, 6, 1]
getChars
Java String to Char 使用 getChars ,取得指定索引區間的字元陣列。
@Test
public void getChars() {
String value = "gradle 161";
char[] result = new char[6];
value.getChars(0, 6, result, 0);
System.out.println(Arrays.toString(result));
assertEquals(6, result.length);
result = new char[] { '*', '*', '*', '*', '*', '*', '*', '*' };
value.getChars(0, 6, result, 1);
System.out.println(Arrays.toString(result));
assertEquals(8, result.length);
}
[g, r, a, d, l, e]
[*, g, r, a, d, l, e, *]
getCharsThrowException
Java String to Char 使用 getChars ,取得指定索引區間的字元陣列,放入目標字元陣列,當超出長度時,會拋出例外。
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void getCharsThrowException() {
String value = "gradle 161";
char[] result = new char[3];
value.getChars(0, 6, result, 0);
System.out.println(Arrays.toString(result));
}
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at java.lang.String.getChars(String.java:826)
at org.ruoxue.java_147.conversion.StringToCharTest.getCharsThrowException(StringToCharTest.java:70)
StringToCharTest.java
Convert String to Char in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.conversion.string;
import static org.junit.Assert.*;
import java.util.Arrays;
import org.junit.Test;
public class StringToCharTest {
@Test
public void charAt() {
String value = "gradle 161";
char result = value.charAt(2);
System.out.println(result);
assertEquals('a', result);
result = value.charAt(7);
System.out.println(result);
assertEquals('1', result);
for (int i = 0; i < value.length(); i++) {
result = value.charAt(i);
System.out.print(result);
}
}
@Test(expected = StringIndexOutOfBoundsException.class)
public void charAtThrowException() {
String value = "gradle 161";
char result = value.charAt(2);
System.out.println(result);
assertEquals('a', result);
result = value.charAt(11);
System.out.println(result);
}
@Test
public void toCharArray() {
String value = "gradle 161";
char[] result = value.toCharArray();
System.out.println(Arrays.toString(result));
assertEquals(10, result.length);
value = "161";
result = value.toCharArray();
System.out.println(Arrays.toString(result));
assertEquals(3, result.length);
}
@Test
public void getChars() {
String value = "gradle 161";
char[] result = new char[6];
value.getChars(0, 6, result, 0);
System.out.println(Arrays.toString(result));
assertEquals(6, result.length);
result = new char[] { '*', '*', '*', '*', '*', '*', '*', '*' };
value.getChars(0, 6, result, 1);
System.out.println(Arrays.toString(result));
assertEquals(8, result.length);
}
@Test
public void getCharsThrowException() {
String value = "gradle 161";
char[] result = new char[3];
value.getChars(0, 6, result, 0);
System.out.println(Arrays.toString(result));
}
}
心得分享
String to Char in Java 使用 charAt 方法在將 String 轉換為 char 基本型別, Convert String to Char in Java 提供將 String 實例轉換為 char 的多種方法。