/** * Разделить строку на подстроки в соответствии с разделителями заданными 2-м параметром * * @param str - Исходная строка * @param delim - Список разделителей * @return - массив подстрок */ public static String[] aToken(String str, String delim) { if (StringFunc.isEmpty(str)) { return new String[0]; } StringTokenizer strtok = new StringTokenizer(str, delim, false); int count = strtok.countTokens(); String result[]; result = new String[count]; for (int i = 1; i <= count; i++) result[i - 1] = strtok.nextToken(); return result; }
/** * Разделить строку вида : a=b c=d на HasMap вида : a-->b c-->d * * @param src - Исходня строка * @param delim1 - Разделители первого уровня * @param delim2 - Разделители второго уровня * @return - HashMap - разобранная строка */ public static HashMap<String, String> aToken2(String src, String delim1, String delim2) { HashMap<String, String> rc = new HashMap<String, String>(); if (StringFunc.isEmpty(src)) { return rc; } // if isEmpty(src) String[] atok1 = Token.aToken(src, delim1); for (int i = 0; i < atok1.length; i++) { String s = atok1[i]; String[] atok2 = Token.aToken(s, delim2); if (atok2.length < 2) continue; rc.put(atok2[0], atok2[1]); } // for return rc; }
public static String join(List<Integer> tokens, String seps) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < tokens.size(); i++) { String tok = tokens.get(i) + ""; if (StringFunc.isEmpty(tok)) { continue; } buf.append(tok).append(seps); } // for String rc = buf.toString(); if (rc.endsWith(seps)) { rc = rc.substring(0, rc.length() - seps.length()); } return rc; }
public static String encodeRusString(String txt) { if (StringFunc.isEmpty(txt)) { return txt; } final String allRusChars = StringFunc.RUS_ALL_LETTERS; StringBuffer rc = new StringBuffer(); char[] chars = txt.toCharArray(); // for (char ch : chars) { for (int i = 0; i < chars.length; i++) { char ch = chars[i]; int indexOf = allRusChars.indexOf(ch); if (indexOf == -1) { rc.append(ch); } else { rc.append(encodeRusChar(indexOf)); } } return rc.toString(); }