⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teststringutil.java

📁 Jodd是一个开源的公用Java基础类库
💻 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 + -