Java String Methods - Java 147

Java String Methods – Java 147

Java String Methods

有兩種方式建立字串,使用文字建立,為了使 Java 更有效地使用記憶體,因為如果字串池中已存在該物件,則不會建立新物件,或是用 new 關鍵字建立字串,在這種情況下,JVM 將在普通堆記憶體中建立一個新的字串物件,並且文字將被放置在字串池中,變數將引用堆中的物件, String Java Methods 本篇增加了範例,並透過單元測試來驗證產出結果。

檔案目錄

./
   +- src
       +- test
       |   +- org
       |       +- ruoxue
       |           +- java_147
       |               +- string
       |                   +- StringMethodsTest.java   

單元測試

String Methods Java 提供包含、格式化、連接等操作 String 。

contains

建立一個 String ,檢查包含指定的字串。

	@Test
	public void contains() {
		String value = "Assertj 155";
		boolean result = value.contains("155");
		System.out.println(result);
		assertTrue(result);

		result = value.contains("Java");
		System.out.println(result);
		assertFalse(result);
	}
true
false

toCharArray

String Methods Java 建立一個 String ,轉成 char 陣列。

	@Test
	public void toCharArray() {
		String value = "Assertj";
		char[] result = value.toCharArray();
		System.out.println(Arrays.toString(result));
		assertEquals(7, result.length);

		value = "Assertj 155";
		result = value.toCharArray();
		System.out.println(Arrays.toString(result));
		assertEquals(11, result.length);
	}
[A, s, s, e, r, t, j]
[A, s, s, e, r, t, j,  , 1, 5, 5]

length

String Methods Java 建立一個 String ,取得長度。

	@Test
	public void length() {
		String value = "Assertj 155";
		System.out.println(value.length());
		assertEquals(11, value.length());

		value = value + "Assertj 155";
		System.out.println(value.length());
		assertEquals(22, value.length());
	}
11
22

format

String Methods Java 建立一個 String ,格式化字串,及長度為 15 向右對齊。

	@Test
	public void format() {
		String value = "Assertj 155";
		String result = String.format("String is: %s", value);
		System.out.println(result);
		assertEquals("String is: Assertj 155", result);

		result = String.format("String is: %15s", value);
		System.out.println(result);
		assertEquals("String is:     Assertj 155", result);
	}
String is: Assertj 155
String is:     Assertj 155

concat

String Methods in Java 建立一個 String ,連接字串。

	@Test
	public void concat() {
		String value = "Assertj";
		String result = value.concat(" 155");
		System.out.println(result);
		assertEquals("Assertj 155", result);

		result = value.concat(" Java");
		System.out.println(result);
		assertEquals("Assertj Java", result);
	}
Assertj 155
Assertj Java

trim

String Methods in Java 建立一個 String ,移除左右空白字串。

	@Test
	public void trim() {
		String value = "Assertj 155  ";
		String result = value.trim();
		System.out.println(result);
		assertEquals("Assertj 155", result);

		value = "   Assertj 155";
		result = value.trim();
		System.out.println(result);
		assertEquals("Assertj 155", result);
	}
Assertj 155
Assertj 155

toLowerCase

建立一個 String ,轉換成小寫。

	@Test
	public void toLowerCase() {
		String value = "Assertj";
		String result = value.toLowerCase();
		System.out.println(result);
		assertEquals("assertj", result);

		value = "Assertj 155";
		result = value.toLowerCase();
		System.out.println(result);
		assertEquals("assertj 155", result);
	}
assertj
assertj 155

toUpperCase

建立一個 String ,轉換成大寫。

	@Test
	public void toUpperCase() {
		String value = "Assertj";
		String result = value.toUpperCase();
		System.out.println(result);
		assertEquals("ASSERTJ", result);

		value = "Assertj 155";
		result = value.toUpperCase();
		System.out.println(result);
		assertEquals("ASSERTJ 155", result);
	}
ASSERTJ
ASSERTJ 155

StringMethodsTest.java

String Methods in Java 新增單元測試,驗證 String Functions in Java 是否符合預期。

package org.ruoxue.java_147.string;

import static org.junit.Assert.*;

import java.util.Arrays;

import org.junit.Test;

public class StringMethodsTest {

	@Test
	public void contains() {
		String value = "Assertj 155";
		boolean result = value.contains("155");
		System.out.println(result);
		assertTrue(result);

		result = value.contains("Java");
		System.out.println(result);
		assertFalse(result);
	}

	@Test
	public void toCharArray() {
		String value = "Assertj";
		char[] result = value.toCharArray();
		System.out.println(Arrays.toString(result));
		assertEquals(7, result.length);

		value = "Assertj 155";
		result = value.toCharArray();
		System.out.println(Arrays.toString(result));
		assertEquals(11, result.length);
	}

	@Test
	public void length() {
		String value = "Assertj 155";
		System.out.println(value.length());
		assertEquals(11, value.length());

		value = value + "Assertj 155";
		System.out.println(value.length());
		assertEquals(22, value.length());
	}

	@Test
	public void format() {
		String value = "Assertj 155";
		String result = String.format("String is: %s", value);
		System.out.println(result);
		assertEquals("String is: Assertj 155", result);

		result = String.format("String is: %15s", value);
		System.out.println(result);
		assertEquals("String is:     Assertj 155", result);
	}

	@Test
	public void concat() {
		String value = "Assertj";
		String result = value.concat(" 155");
		System.out.println(result);
		assertEquals("Assertj 155", result);

		result = value.concat(" Java");
		System.out.println(result);
		assertEquals("Assertj Java", result);
	}

	@Test
	public void trim() {
		String value = "Assertj 155  ";
		String result = value.trim();
		System.out.println(result);
		assertEquals("Assertj 155", result);

		value = "   Assertj 155";
		result = value.trim();
		System.out.println(result);
		assertEquals("Assertj 155", result);
	}

	@Test
	public void toLowerCase() {
		String value = "Assertj";
		String result = value.toLowerCase();
		System.out.println(result);
		assertEquals("assertj", result);

		value = "Assertj 155";
		result = value.toLowerCase();
		System.out.println(result);
		assertEquals("assertj 155", result);
	}

	@Test
	public void toUpperCase() {
		String value = "Assertj";
		String result = value.toUpperCase();
		System.out.println(result);
		assertEquals("ASSERTJ", result);

		value = "Assertj 155";
		result = value.toUpperCase();
		System.out.println(result);
		assertEquals("ASSERTJ 155", result);
	}
}

心得分享

String Functions in Java 提供了 String 建立的方式,在 Java 中, String 物件是不可變的,一旦建立後就不能改變,熟悉 String Methods in Java 這些方法的操作,提升開發效率,在應用上相當廣泛。

發佈留言