Java Convert String to Char - Java 147

Java Convert String to Char – Java 147

Java 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 的多種方法。

發佈留言