guava的Strings工具类提供了几个简单的字符串操作:
package org.example.model.guava;
import com.google.common.base.Strings;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatNullPointerException;
public class StringsTest {
@Test
public void test() {
// 1.如果是空字符串则转换为null
assertThat(Strings.emptyToNull("")).isNull();
assertThat(Strings.emptyToNull("abc")).isEqualTo("abc");
// 2.如果是null则转换为空字符串
assertThat(Strings.nullToEmpty(null)).isEmpty();
assertThat(Strings.nullToEmpty("abc")).isEqualTo("abc");
// 3. 获取两个字符串的公共前缀/后缀; 参数为null会抛出异常
assertThat(Strings.commonPrefix("abcd", "abce")).isEqualTo("abc");
assertThat(Strings.commonPrefix("bbcd", "abce")).isEqualTo("");
assertThat(Strings.commonPrefix(Strings.nullToEmpty(null), "abce")).isEqualTo("");
assertThatNullPointerException().isThrownBy(() ->Strings.commonPrefix(null, "abce"));
assertThat(Strings.commonSuffix("abcd", "bbcd")).isEqualTo("bcd");
// 4. 将字符串重复n遍
assertThat(Strings.repeat("a", 3)).isEqualTo("aaa");
assertThat(Strings.repeat("", 3)).isEqualTo("");
assertThatNullPointerException().isThrownBy(() ->Strings.repeat(null, 3));
// 5. 字符串不足指定长度时,使用指定字符进行左/右填充
assertThat(Strings.padStart("Hello", 5, '-')).isEqualTo("Hello");
assertThat(Strings.padStart("Hello", 6, '-')).isEqualTo("-Hello");
assertThat(Strings.padEnd("Hello", 6, '-')).isEqualTo("Hello-");
assertThatNullPointerException().isThrownBy(() ->Strings.padStart(null, 3, '3'));
}
}