📄 teststringutil.java
字号:
package jodd.util;
import junit.framework.TestCase;
public class TestStringUtil extends TestCase {
public void testSplit() {
String src = "1,22,3,44,5";
String[] r = null;
r = StringUtil.split(src, ",");
assertEquals(5, r.length);
assertEquals("1", r[0]);
assertEquals("22", r[1]);
assertEquals("3", r[2]);
assertEquals("44", r[3]);
assertEquals("5", r[4]);
src = "1,22,,,5";
r = StringUtil.split(src, ",");
assertEquals(5, r.length);
assertEquals("1", r[0]);
assertEquals("22", r[1]);
assertEquals("", r[2]);
assertEquals("", r[3]);
assertEquals("5", r[4]);
r = StringUtil.split(null, ",");
assertNull(r);
src = "173";
r = StringUtil.split(src, ",");
assertEquals(1, r.length);
assertEquals("173", r[0]);
r = StringUtil.split(src, null);
assertEquals(1, r.length);
assertEquals("173", r[0]);
src = "1,2";
r = StringUtil.split(src, null);
assertEquals(1, r.length);
assertEquals("1,2", r[0]);
src = ",";
r = StringUtil.split(src, ",");
assertEquals(2, r.length);
assertEquals("", r[0]);
assertEquals("", r[1]);
}
public void testSplit2() {
String src = "1,22,3,44,5";
String[] r = null;
r = StringUtil.splitc(src, "a,.q");
assertEquals(5, r.length);
assertEquals("1", r[0]);
assertEquals("22", r[1]);
assertEquals("3", r[2]);
assertEquals("44", r[3]);
assertEquals("5", r[4]);
src = "1,22,,,5";
r = StringUtil.splitc(src, ",");
assertEquals(3, r.length);
assertEquals("1", r[0]);
assertEquals("22", r[1]);
assertEquals("5", r[2]);
r = StringUtil.splitc(null, ",");
assertNull(r);
src = "173";
r = StringUtil.splitc(src, ",");
assertEquals(1, r.length);
assertEquals("173", r[0]);
r = StringUtil.splitc(src, (String)null);
assertEquals(1, r.length);
assertEquals("173", r[0]);
src = "1,2";
r = StringUtil.splitc(src, null);
assertEquals(1, r.length);
assertEquals("1,2", r[0]);
src = ",";
r = StringUtil.splitc(src, ",");
assertEquals(2, r.length);
assertEquals("", r[0]);
assertEquals("", r[1]);
src = "1, 22 , 5";
r = StringUtil.splitc(src, ", ");
assertEquals(3, r.length);
assertEquals("1", r[0]);
assertEquals("22", r[1]);
assertEquals("5", r[2]);
src = " , 22 , 5";
r = StringUtil.splitc(src, ", ");
assertEquals(3, r.length);
assertEquals("", r[0]);
assertEquals("22", r[1]);
assertEquals("5", r[2]);
}
public void testReplace() {
String src = "12345";
assertEquals("12qwe45", StringUtil.replace(src, "3", "qwe"));
assertEquals("1234qwe", StringUtil.replace(src, "5", "qwe"));
assertEquals("qwe2345", StringUtil.replace(src, "1", "qwe"));
assertEquals(src, StringUtil.replace(src, "0", "qwe"));
assertEquals(src, StringUtil.replace(src, "0", null));
src = "100010001";
assertEquals("dd000dd000dd", StringUtil.replace(src, "1", "dd"));
assertEquals(src, StringUtil.replace(src, "2", "dd"));
assertNull(StringUtil.replace(null, "1", "2"));
src = "11221144";
src = StringUtil.replaceFirst(src, "11", "55");
assertEquals("55221144", src);
src = StringUtil.replaceFirst(src, "11", "55");
assertEquals("55225544", src);
src = StringUtil.replaceFirst(src, "11", "55");
assertEquals("55225544", src);
src = StringUtil.replaceLast(src, "55", "11");
assertEquals("55221144", src);
src = StringUtil.replaceLast(src, "55", "11");
assertEquals("11221144", src);
src = StringUtil.replaceLast(src, "55", "11");
assertEquals("11221144", src);
}
public void testIndexOf() {
String src = "1234567890qWeRtY";
assertEquals(0, StringUtil.indexOfIgnoreCase(src, "123"));
assertEquals(0, StringUtil.lastIndexOfIgnoreCase(src, "123"));
assertTrue(StringUtil.startsWithIgnoreCase(src, "123"));
assertTrue(StringUtil.endsWithIgnoreCase(src, "y"));
assertTrue(StringUtil.endsWithIgnoreCase(src, "qwerty"));
assertFalse(StringUtil.endsWithIgnoreCase(src, "qwert"));
assertFalse(StringUtil.endsWithIgnoreCase(src, "q"));
assertEquals(0, StringUtil.indexOfIgnoreCase(src, "1234567890QwErTy"));
assertEquals(0, StringUtil.lastIndexOfIgnoreCase(src, "1234567890QwErTy"));
assertTrue(StringUtil.startsWithIgnoreCase(src, "1234567890QwErTy"));
assertTrue(StringUtil.endsWithIgnoreCase(src, "1234567890QwErTy"));
assertEquals(1, StringUtil.indexOfIgnoreCase(src, "2345"));
assertEquals(1, StringUtil.lastIndexOfIgnoreCase(src, "2345"));
assertFalse(StringUtil.startsWithIgnoreCase(src, "2345"));
assertEquals(10, StringUtil.indexOfIgnoreCase(src, "qwe"));
assertEquals(10, StringUtil.lastIndexOfIgnoreCase(src, "qwe"));
assertTrue(StringUtil.startsWithIgnoreCase(src, "qwe", 10));
assertEquals(10, StringUtil.indexOfIgnoreCase(src, "qwerty"));
assertEquals(10, StringUtil.lastIndexOfIgnoreCase(src, "qwerty"));
assertTrue(StringUtil.startsWithIgnoreCase(src, "qwerty", 10));
assertEquals(10, StringUtil.indexOfIgnoreCase(src, "QWERTY"));
assertEquals(10, StringUtil.lastIndexOfIgnoreCase(src, "QWERTY"));
assertTrue(StringUtil.startsWithIgnoreCase(src, "QWERTY", 10));
assertEquals(-1, StringUtil.indexOfIgnoreCase(src, "qwertyu"));
assertEquals(-1, StringUtil.lastIndexOfIgnoreCase(src, "qwertyu"));
assertFalse(StringUtil.startsWithIgnoreCase(src, "qwertyu", 10));
assertEquals(10, StringUtil.indexOfIgnoreCase(src, "qwerty", 9));
assertEquals(10, StringUtil.lastIndexOfIgnoreCase(src, "qwerty", 9));
assertEquals(-1, StringUtil.indexOfIgnoreCase(src, "qwerty", 11));
assertEquals(-1, StringUtil.lastIndexOfIgnoreCase(src, "qwerty", 11));
assertFalse(StringUtil.startsWithIgnoreCase(src, "qwerty", 11));
src = "AAA111aaa";
assertEquals(0, StringUtil.indexOfIgnoreCase(src, "aaa", 0));
assertEquals(6, StringUtil.lastIndexOfIgnoreCase(src, "aaa", 0));
assertTrue(StringUtil.startsWithIgnoreCase(src, "aaa", 0));
assertTrue(StringUtil.startsWithIgnoreCase(src, "aa", 1));
assertTrue(StringUtil.startsWithIgnoreCase(src, "a", 2));
assertTrue(StringUtil.startsWithIgnoreCase(src, "A", 6));
assertTrue(StringUtil.startsWithIgnoreCase(src, "AA", 6));
assertTrue(StringUtil.startsWithIgnoreCase(src, "AAA", 6));
assertFalse(StringUtil.startsWithIgnoreCase(src, "AAAA", 6));
assertEquals(6, StringUtil.indexOfIgnoreCase(src, "aaa", 1));
assertEquals(6, StringUtil.lastIndexOfIgnoreCase(src, "aaa", 1));
src = "123";
assertEquals(-1, StringUtil.indexOfIgnoreCase(src, "1234"));
assertEquals(-1, StringUtil.lastIndexOfIgnoreCase(src, "1234"));
assertEquals(0, StringUtil.indexOfIgnoreCase(src, ""));
assertEquals(3, StringUtil.lastIndexOfIgnoreCase(src, ""));
}
public void testMatch() {
assertTrue(StringUtil.match("CfgOptions.class", "C*class"));
assertFalse(StringUtil.match("CfgOptions.class", "C*clas"));
assertFalse(StringUtil.match("C*r*class", "CfgOptions.class"));
// wildcard on the start and end of the expression
assertTrue(StringUtil.match("CfgOptions.class", "*g*class"));
assertTrue(StringUtil.match("CfgOptions.class", "*C*g*class"));
assertTrue(StringUtil.match("CfgOptions.class", "C*g*cl*"));
assertTrue(StringUtil.match("CfgOptions.class", "*C*g*cl*"));
// multiple wildcards
assertTrue(StringUtil.match("CfgOptions.class", "*g*c**ss"));
assertTrue(StringUtil.match("CfgOptions.class", "*g*c**s")); // THIS IS TRUE!!!
assertTrue(StringUtil.match("CfgOptions.class", "*gOpti******ons.c**ss"));
assertTrue(StringUtil.match("CfgOptions.class", "***gOpti*ons.c**ss"));
assertTrue(StringUtil.match("CfgOptions.class", "***gOptions.c**"));
// wildcard '?':
assertTrue(StringUtil.match("CfgOptions.class", "*gOpti*c?ass"));
assertFalse(StringUtil.match("CfgOptions.class", "*gOpti*c?ss"));
// wildcard on the start and end of the expression:
assertTrue(StringUtil.match("CfgOptions.class", "*gOpti*c?as?"));
assertFalse(StringUtil.match("CfgOptions.class", "*gOpti*c?a?"));
assertTrue(StringUtil.match("CfgOptions.class", "?fgOpti*c?ass"));
assertFalse(StringUtil.match("CfgOptions.class", "?gOpti*c?as?"));
assertTrue(StringUtil.match("CfgOptions.class", "??gOpti*c?ass"));
// multiple wildcards
assertTrue(StringUtil.match("CfgOptions.class", "C????ti*c?ass"));
assertFalse(StringUtil.match("CfgOptions.class", "C???ti*c?ass"));
// wildcards '*' and '?' mixed together:
assertTrue(StringUtil.match("CfgOptions.class", "C??*ti*c?ass"));
assertTrue(StringUtil.match("CfgOptions.class", "C*ti*c?as?*"));
assertTrue(StringUtil.match("CfgOptions.class", "C*ti*c?a*?"));
assertTrue(StringUtil.match("CfgOptions.class", "C*ti*?a*"));
assertTrue(StringUtil.match("CfgOptions.class", "C*ti*c?a?*"));
assertFalse(StringUtil.match("CfgOptions.class", "C*ti*c?*la?*"));
// escaped wildcards:
assertFalse(StringUtil.match("CfgOptions.class", "*gOpti\\*c?ass"));
assertTrue(StringUtil.match("CfgOpti*class", "*gOpti\\*class"));
assertTrue(StringUtil.match("CfgOpti*class", "*gOpti\\*c?ass"));
assertFalse(StringUtil.match("CfgOpti*class", "*gOpti\\\\*c?ass"));
assertTrue(StringUtil.match("CfgOpti\\*class", "*gOpti\\\\*c?ass"));
assertTrue(StringUtil.match("CfgOpti?class", "*gOpti\\?c*ass"));
assertFalse(StringUtil.match("CfgOpti\\?class", "*gOpti\\?c*ass"));
assertTrue(StringUtil.match("CfgOptions.class", "CfgOpti\\ons.class"));
assertTrue(StringUtil.match("What's this?", "What*\\?"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -