package jef.tools; import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.StringTokenizer; import java.util.regex.Pattern; import org.junit.Test; import jef.common.log.LogUtil; import jef.tools.string.StringComparator; import jef.tools.string.StringSpliter; import jef.tools.string.Substring; public class StringUtilsTest extends org.junit.Assert { @Test public void stringTokens() { String command = "cmd \"c:\\program files\\aaa\\bbb.exe\" /s /t \"file name\""; StringTokenizer st = new StringTokenizer(command); String[] cmdarray = new String[st.countTokens()]; for (int i = 0; st.hasMoreTokens(); i++) cmdarray[i] = st.nextToken(); LogUtil.show(cmdarray); } @Test public void testSubstring() { String sss = "12345[67890abcdef]ghijklmn"; LogUtil.show(StringUtils.splitOfAny(sss, new String[] { "<", "(", "]", ">", "[" })); Substring sb = new Substring(sss); StringSpliter sp = new StringSpliter(sb); // sp.setMode(StringSpliter.MODE_FROM_RIGHT); sp.setKey("90ab"); System.out.println("========"); System.out.println(sp.getLeft()); System.out.println(sp.getKeyword()); System.out.println(sp.getRight()); System.out.println("========"); sp.expandKeyLeftUntil("[".toCharArray()); System.out.println(sp.getLeft()); System.out.println(sp.getKeyword()); System.out.println(sp.getRight()); System.out.println(sp.getLeftWithKey()); System.out.println(sp.getRightWithKey()); System.out.println("==��String����Ƚ�indexOf�߼�====="); String ss = "dssd1d3sdsdsdcmkdssddscmdssdk123f456dssd7890"; sb = new Substring(ss, 4, ss.length() - 3); ss = sb.toString(); System.out.println(ss); System.out.println(sb.indexOf("cm", 6)); System.out.println(ss.indexOf("cm", 6)); System.out.println(sb.lastIndexOf("cm")); System.out.println(ss.lastIndexOf("cm")); String keyLike = "?[?3aaa4?]??"; sp = new StringSpliter(keyLike); sp.setKey("aaa"); sp.expandKey("34[]".toCharArray()); System.out.println(sp.getLeft()); System.out.println(sp.getKeyword()); System.out.println(sp.getRight()); String xPath = "count:1sdsdsd/dsds"; if (xPath.startsWith("count:")) { xPath = xPath.substring(6); } LogUtil.show(xPath); } @Test public void testMatchChars() { String a = " at you are not along!"; String b = "you are"; boolean flag = StringUtils.matchChars(a, 7, b); System.out.println(flag); Assert.isTrue(flag); } @Test public void testMatch() { String clz = "com.ailk.openbilling.persistence.newModule.entity.Lineitem"; String key = "com.ailk.*.persistence.*"; boolean flag = StringUtils.matches(clz, key, false); assertTrue(flag); } @Test public void testToMap() { String s = "aa=\"123\"bb=\"456\"cc=\"789\""; StringTokenizer t = new StringTokenizer(s, "\"=", false); Map<String, String> map = new HashMap<String, String>(); while (t.hasMoreTokens()) { String key = t.nextToken(); String value = t.hasMoreTokens() ? t.nextToken() : ""; map.put(key, value); } assertEquals(3, map.size()); } @Test public void testSplitLast() { String s = "usertname.txt.bat"; String[] ss = StringUtils.splitLast(s, "."); String newName = ss[0] + "(2)." + ss[1]; assertEquals("usertname.txt(2).bat", newName); } @Test public void testSplitLast123() { String s = "u"; { System.out.println(StringUtils.getSHA256(s)); } { System.out.println(StringUtils.getSHA1(s)); } { System.out.println(StringUtils.getMD5(s)); } } @Test public void testStringRegexp() { String sql = "update TEST_ENTITY set DOUBLEFIELD2 = ?, FOLATFIELD2 = ?, BOOLFIELD = ?, CREATE_TIME = ?, FLOATFIELD = ?, LONGFIELD2 = ?, DOUBLEFIELD = ?, FIELD_1 = ?, FIELD_2 = ?, BINARYDATA = ?, INT_FIELD_1 = ?, INT_FIELD_2 = ?, LONGFIELD = ?, DATEFIELD = ?, BOOLFIELD2 = ? where LONGFIELD2=?\r\naa"; Pattern p = Pattern.compile("update TEST_ENTITY set.+", Pattern.MULTILINE); System.out.println(p.matcher(sql).matches()); } @Test public void testSkip() throws IOException { System.out.println(StringUtils.fromHexUnicodeString("\u200b")); String s = StringUtils.generateGuid(); System.out.println(s); System.out.println(StringUtils.getMD5(s)); System.out.println(StringUtils.getSHA1(s)); System.out.println(StringUtils.getSHA256(s)); } /** * 测试案例 * * @param args */ @Test public void stringSort() { String s1 = "V1.01.1b"; String s2 = "V1.1.10"; String s3 = "version1000"; String s4 = "version999"; String s5 = "10x0888version1"; String s6 = "10x1111111111111111111111111111111111111111111111111111111version1"; String s7 = "10x222222222222222222222222222222222222222222222222222222222version10"; String s8 = "10x1999version9"; List<String> list = Arrays.asList(s1, s2, s3, s4, s5, s6, s7, s8); Collections.sort(list, StringComparator.INSTANCE); assertEquals(list, Arrays.asList(s5, s6, s8, s7, s1, s2, s4, s3)); } }